Current Reality (v0.1)
HDP uses a single linear append-only chain inside one token.
It works great for sequential delegation (Human → Orchestrator → Agent A → Agent B).
For parallel agents / swarms, it does not support native branching or fan-out in a single token. The chain array is strictly linear.
Limitations Right Now
- No built-in branching/fan-out structure (one token can't cleanly represent "Agent A splits work to B and C in parallel").
- No native support for merging convergent paths.
- Scope narrowing still applies across the whole chain.
lightweight provenance DAG (directed acyclic graph) with content-addressed branch references.
Why this is the best choice
- Keeps every property that makes HDP great: single self-contained token, fully offline verifiable, human-root authority, session binding, Ed25519 signatures, minimal size.
- Naturally supports linear, parallel, swarm, tree, and even converging (merge) patterns without hacks.
- Backward-compatible with every v0.1 token (old linear chains remain valid).
- Scales cleanly to huge swarms (thousands of parallel agents) because branches can be distributed as separate tokens instead of bloating one giant object.
- Perfectly complements APS interop: HDP becomes the human-root DAG, APS becomes the scoped enforcement layer on top of any branch.
How it works (v0.2 proposal)
Instead of a flat chain: [] array, the token gains an optional top-level graph field:
JSON{
"version": "0.2",
"root": { ... human session binding ... },
"graph": {
"nodes": {
"h0": { "type": "root", "agent": "human", "session_id": "..." },
"h1": { "parent": "h0", "agent_id": "orchestrator", "action_summary": "launch swarm" },
"h2a": { "parent": "h1", "agent_id": "research-agent", "action_summary": "..." },
"h2b": { "parent": "h1", "agent_id": "analysis-agent", "action_summary": "..." },
"h3": { "parents": ["h2a", "h2b"], "agent_id": "orchestrator", "action_summary": "merge results" }
},
"branches": {
"research-branch": ["h2a"],
"analysis-branch": ["h2b"]
}
},
"signature": "..."
}
Or, for maximum scalability (recommended production pattern):
The root token only contains the human → orchestrator hop.
Each parallel branch gets its own lightweight child HDP token that references the parent root hash.
Verifiers walk the DAG by following cryptographic references (just like Git commits or IPLD).
Implementation sketch (TypeScript)
TypeScript// Fork a parallel branch
const branchToken = await forkBranch(rootToken, {
agent_id: "research-agent-42",
action_summary: "deep research on topic X",
branch_id: "research-001"
}, privateKey);
// Merge later
const mergeToken = await mergeBranches([researchToken, analysisToken], {
action_summary: "combined swarm result"
}, privateKey);
Verification stays trivial and fully offline:
TypeScriptconst result = await verifyHdpDag(tokenOrRootHash, humanPublicKey);
// returns full provenance graph + any missing branch references
Why this is futureproof
- Handles any swarm pattern (fan-out, fan-in, dynamic spawning, recursive sub-swarms).
- Works natively with orchestration frameworks (LangGraph, CrewAI, AutoGen, etc.).
- Composes beautifully with APS (put the HDP root DAG hash into the first APS delegation).
- Easy to add Merkle proofs later for massive graphs.
- No registry or online lookup required ,everything stays cryptographically self-describing.
Current Reality (v0.1)
HDP uses a single linear append-only chain inside one token.
It works great for sequential delegation (Human → Orchestrator → Agent A → Agent B).
For parallel agents / swarms, it does not support native branching or fan-out in a single token. The chain array is strictly linear.
Limitations Right Now
lightweight provenance DAG (directed acyclic graph) with content-addressed branch references.
Why this is the best choice
How it works (v0.2 proposal)
Instead of a flat chain: [] array, the token gains an optional top-level graph field:
Or, for maximum scalability (recommended production pattern):
The root token only contains the human → orchestrator hop.
Each parallel branch gets its own lightweight child HDP token that references the parent root hash.
Verifiers walk the DAG by following cryptographic references (just like Git commits or IPLD).
Implementation sketch (TypeScript)
Why this is futureproof