Current collected state Current
Observed since 20 Oct, 21:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@01protocol/sdk
Official SDK for the 01 Protocol — portable, cryptographically verifiable AI agent identity
Official JavaScript/TypeScript SDK for the 01 Protocol — portable, cryptographically verifiable AI agent identity.
npm install @01protocol/sdk
Note: Until the npm package is published, install directly from GitHub:
npm install github:01ai-Admin/01ai_01protocol_mcp#v0.1.0
import { createAgent, verifyFromText } from "@01protocol/sdk";
// Create a new agent identity
const result = createAgent({
name: "Sales Analyst",
role: "Data Analyst",
goal: "Analyze quarterly sales data and surface insights",
});
console.log("Agent ID:", result.agent.instanceId);
console.log("SAVE THIS KEY:", result.privateKeyHex); // shown once
// Verify a .01ai file
import { readFileSync } from "node:fs";
const text = readFileSync("agent.01ai", "utf-8");
const verified = verifyFromText(text);
if (verified.valid) {
console.log("✅ PASS:", verified.agent.name);
} else {
console.log("❌ FAIL:", verified.error);
}
const result = createAgent({
name: "Research Agent",
role: "Research Analyst",
goal: "Synthesize academic papers into actionable insights",
includeMemory: true, // produces .01bundle
});
// result.bundle contains identity + memory vault
import { addMemoryEntry, computeVaultMerkleRoot, resignAgent } from "@01protocol/sdk";
const updatedVault = addMemoryEntry(vault, {
instanceId: agent.instanceId,
layer: "persistent-vault",
type: "decision",
summary: "Chose PostgreSQL over MongoDB for the reporting module",
tags: ["architecture", "database"],
});
const merkleRoot = computeVaultMerkleRoot(updatedVault);
const updatedAgent = resignAgent(agent, privateKeyHex, { memoryMerkleRoot: merkleRoot });
| Function | Description |
|---|---|
createAgent(params) | Mint a new agent identity with Ed25519 keypair |
verifyFromText(text) | Parse + verify a .01ai file from raw string |
verifyAgentRecord(obj) | Verify a pre-parsed agent object |
resignAgent(agent, key, updates) | Re-sign after updates, increments evolutionCounter |
addMemoryEntry(vault, entry) | Add a memory entry to a vault |
computeVaultMerkleRoot(vault) | Compute SHA-256 Merkle root of vault contents |
createPortableBundle(agent, vault) | Combine identity + vault into .01bundle |
.01ai (identity only) or .01bundle (identity + memory)MIT — see LICENSE
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@noble/curvesEnvironment{
"local_name": "@noble/curves",
"alias": false,
"peer_metadata": null
} | ^1.4.0 | runtime |
@noble/hashesEnvironment{
"local_name": "@noble/hashes",
"alias": false,
"peer_metadata": null
} | ^1.4.0 | runtime |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.9.3 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^25.5.0 | development |
Source distribution
{
"shasum": "df779913a9d42cd7ff95109770510069082ed216",
"tarball": "https://registry.npmjs.org/@01protocol/sdk/-/sdk-0.1.0.tgz",
"fileCount": 39,
"integrity": "sha512-f1kQi9lY14ZuI9TSICjlbYGH1Q7iL7uATKQQTAnGztwALkClOmwDx82pAgKNKxUrtIHe1p5b8Z7W1NtVb7rCxw==",
"signatures": [
{
"sig": "MEYCIQCMJ1szr4tQnIueRuAXl+XNMA0+QqkJmHWp/ah7sfPB2wIhAP4KZbvwgmesxt1otD5HbrS5TPcIjZoQFgFv0LSoCK0l",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 73759
}Shared repository data · GitHub
Observed since 20 Oct, 21:59 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:2b02605526360c2ac857eb5e25001933e9c09903e022ae87bf9fa419c088b7a0