Track: Executable Contracts Team: GenoBank.io Submitter: Daniel Uribe — daniel@genobank.io — linkedin.com/in/uribedaniel
The pitch in one sentence. A clinical trial informed consent is a contract — so we compile it into an executable IR, mint it as an NFT owned by the patient, gate all genomic data access through it via BioRouter, KYC every AI agent via ERC-8004, and pay patients a USDC royalty per access via x402.
What the judges will see. A round-trip on a 4 KB clinical trial informed consent markdown → IR → scenario execution → deterministic English, plus a second lap where the same IR becomes a patient-owned NFT, an AI agent requests a BioCID, x402 settles a $0.01 USDC payment from the agent to the patient wallet, the access gets logged on-chain, and then the patient revokes the NFT (stamping it with an on-chain revoked_at timestamp — the NFT itself persists forever as immutable audit proof) and the exact same request now fails.
The track asks for executable contracts. The natural examples (credit card APRs, lease breach clauses) are all solved-in-principle. Clinical trial informed consents have every element of a hard contract — deadlines, penalties, cross-references, defined terms, payment schedules — plus a regulatory layer (HIPAA, GDPR Article 17, 45 CFR 46, ICH E6) plus a party inversion where the patient is simultaneously a counterparty and the asset. That inversion is exactly what blockchain primitives fix: you can make the patient the NFT holder and the AI agent the payer.
Every other submission will print an APR. We'll pay a real patient $0.01 in USDC from a KYC'd AI agent, gate the data on their signed consent, and let them revoke the consent in one transaction (leaving the NFT permanently on-chain as proof of what was granted and when it was withdrawn).
# 1. clone
git clone https://github.com/duribebe/biorouter-sharpe-hackathon && cd biorouter-sharpe-hackathon
# 2. python 3.11+
python3 --version
# 3. virtualenv + deps
python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
# 4. run the full demo on the included consent file
python cli.py demo samples/autogene-cevumeran-phase2-informed-consent.md
# 5. verify determinism (run decompiler twice, diff)
python cli.py verify samples/autogene-cevumeran-phase2-informed-consent.md
# 6. run the pytest suite — proves LLM-free decompile + deterministic runtime
python -m pytest tests/ -v
# 7. inspect the IR
cat out/ir.json | head -50
# 8. inspect the regenerated English
cat out/decompiled.md
# 9. inspect the execution + audit bundle (BioRouter NFT mint, x402 payments, revocation)
cat out/audit_bundle.json
# 10. read the architecture doc + privacy declaration + license
cat docs/ARCHITECTURE.md
cat PRIVACY.md
cat PATENTS.md
cat LICENSE
python3 scripts/privacy_audit.py # verify no PII/secret leaksExpected output of step 4 (python cli.py demo ...):
All identifiers shown are SYNTHETIC demo values. The code uses
DEMO_WALLET = 0x00000000000000000000000000000000DEADBEEF and
DEMO_AGENT_DID = did:erc8004:sequentia:demo-agent — no real patient or
agent identities appear anywhere in the source. See PRIVACY.md for the
full pseudonymization model.
==============================================================================
STEP 1 — Parse informed consent markdown
==============================================================================
Parsed contract: bo44158
Protocol: BO44158 / NCT05968326
Sponsor: Genentech, Inc. ...
Parties: 4
Obligations:13
Payments: 4
Permitted: 5
Prohibited: 5
==============================================================================
STEP 5 — Mint Clinical Trial Agreement NFT
==============================================================================
NFT minted on Sequentia (simulated, synthetic contract address)
Token ID: 21855582269
Owner: 0x00000000000000000000000000000000DEADBEEF (DEMO_WALLET)
Allowed: ['variant_annotation', 'oncology_panel', 'clinical_trial_matching', 'pharmacogenomics']
Denied: ['insurance_underwriting', 'employer_screening', 'forensic_identification', 'paternity_testing']
==============================================================================
STEP 6 — AI Agent requests BioCID through BioRouter
==============================================================================
REQUEST 1: Demo Oncology Agent asks to run variant_annotation
Decision: GRANTED ✓
x402 tx: 0xf00dba5b... (0.01 USDC: agent → patient wallet)
REQUEST 2: Demo Oncology Agent asks to run insurance_underwriting (PROHIBITED)
Decision: DENIED ✗
- Skill 'insurance_underwriting' explicitly DENIED by consent NFT
REQUEST 3: Unknown agent attempts access
Decision: DENIED ✗
- Agent did:erc8004:sequentia:unknown-999 not found in ERC-8004 registry
==============================================================================
STEP 7 — Patient revokes consent (NFT PERSISTS)
==============================================================================
Revocation tx: 0x7f3c2a8d...
Status: revoked
Revoked at: 2026-04-12T14:00:00+00:00
NFT state: PERSISTENT_ON_CHAIN
REQUEST 4: Demo Oncology Agent retries the exact same query after revocation
Decision: DENIED ✗
- Clinical trial consent REVOKED at 2026-04-12T14:00:00+00:00 by 0x00...DEADBEEF.
NFT persists on-chain as immutable proof — no new access permitted.
Full solution with mermaid diagrams in docs/ARCHITECTURE.md.
The short version:
informed_consent.md
│
├─ Parser (src/ir/parser.py) ────────▶ Contract IR (src/ir/model.py)
│ │
│ ├─▶ Executor (src/runtime/) ──▶ ExecutionResult
│ │ │
│ │ ▼
│ │ out/execution.json + .md
│ │
│ ├─▶ Decompiler (src/decompiler/) ──▶ out/decompiled.md
│ │ [NO LLM, NO NETWORK, DETERMINISTIC]
│ │
│ └─▶ NFTBuilder (src/biorouter/) ──▶ Patient wallet
│ │
│ ├─▶ BioRouterGate
│ │ │
│ │ ├─▶ ERC-8004 (AgentRegistry)
│ │ │
│ │ ├─▶ x402 (pay patient)
│ │ │
│ │ └─▶ Audit log
│ │
│ └─▶ revoke() → sets revoked_at on-chain
│ (NFT persists as immutable proof)
│
└─ LLM scenario generator (src/runtime/scenario_generator.py)
[LLM used ONLY for held-out files, NEVER in decompile]
| Criterion | Weight | How we score |
|---|---|---|
| Expressiveness | 25% | We extract parties, definitions, obligations (with deadlines), payments, permitted/prohibited uses, breach penalties, interest, and cure periods. Defined in src/ir/model.py. |
| Executability | 25% | src/runtime/executor.py carries balances forward, evaluates conditions against events, applies penalties, tracks missed deadlines, emits a full audit log. See out/execution.json after running python cli.py run. |
| Round-trip fidelity | 25% | src/decompiler/decompile.py is pure Python + dict iteration, sorted everywhere. tests/test_determinism.py runs it 100× and diffs. Byte-identical. |
| Generality | 15% | Parser handles any contract that follows Article-numbered markdown. For arbitrary held-out files, src/runtime/scenario_generator.py uses an LLM to propose scenarios (allowed by rules). LLM is NEVER called in decompile (enforced by test_decompiler_has_no_llm_imports). |
| Creativity | 10% | The contract doesn't just compute — it becomes a patient-owned NFT, KYCs the AI agents that query it, pays the patient per access, and is atomically revocable. This is the only submission where the executable contract IS a financial asset AND an access gate AND a patient sovereignty primitive. |
Run it yourself:
python cli.py verify samples/autogene-cevumeran-phase2-informed-consent.md
# → DETERMINISTIC: byte-identical across 2 runs
python -m pytest tests/test_determinism.py -v
# → test_decompile_is_byte_identical PASSED (100 runs)
# → test_decompiler_has_no_llm_imports PASSEDGrep proof of LLM-free decompile:
grep -r "openai\|anthropic\|requests\|urllib\|httpx" src/decompiler/
# → (no matches)The Executable Contracts track is framed around boring B2B contracts (credit cards, leases). But the same machinery is the missing layer for:
- Clinical trials — patients today sign a paper consent and never learn when, how, or why their data gets reused. With a Clinical Trial Agreement NFT, every access is logged, paid for, and revocable.
- DeSci data marketplaces — researchers pay patients per query, with consent verified on-chain. No middleman.
- Agentic AI compliance — when AI agents start processing sensitive health data at scale, we need KYC (ERC-8004) and per-access payment (x402). This submission ships both against a real contract IR.
- GDPR Article 17 — "right to erasure" becomes a one-transaction revocation that stops all future processing while preserving the historical audit trail required by clinical trial integrity rules. Not a ticket to legal. A transaction.
This hackathon is our excuse to ship the minimum viable version of "Stripe for biodata." The contract parser is just the onramp.
- Daniel Uribe — Founder, GenoBank.io
- Email: daniel@genobank.io
- Wallet:
0x5f5a60EaEf242c0D51A21c703f520347b96Ed19a - Live cancer digital twin (demo patient data, patient-owned): https://genoclaw.genobank.app/cancer-map/0x5f5a60EaEf242c0D51A21c703f520347b96Ed19a
Questions? Reach out before judging — happy to walk through the demo live.