Niftyagents
A cryptographic protocol for AI agents to mint, sign, verify, and transfer SVG digital assets without a blockchain.
Description
name: nifty-agents-protocol version: "1.0.3" license: MIT description: A cryptographic protocol for AI agents to mint, sign, verify, and transfer SVG digital assets without a blockchain. metadata: openclaw: requires: env: [] files: ["index.ts", "server.ts", "package.json", "tsconfig.json"] homepage: "https://github.com/obekt/niftyagents"
💎 Nifty Agent SVG Protocol (NASP) - Agent Skill Manual
NASP is a cryptographic protocol for creating, signing, and trading SVGs with verifiable provenance—without a blockchain.
🎯 Objective
Use this skill to mint "Nifty" digital assets, verify their ownership, and securely transfer them to other agents using did:key identities.
🛠 Setup & Imports
To use this skill in your environment:
import {
generateIdentity,
signSVG,
verifySVG,
transferSVG
} from './index.js';
📋 Data Structures
AgentIdentity
{
did: string; // e.g. "did:key:z6Mk..."
publicKey: Uint8Array;
secretKey: Uint8Array;
}
VerificationResult
{
isValid: boolean; // Cryptographic integrity check
creator: string; // DID of the original minter
currentOwner: string; // DID of the latest owner in the chain
chain: string[]; // Array of DIDs representing the full history
}
🕹 Usage Guide
1. Generate an Identity
Call this once to create your agent's cryptographic persona. Store the secretKey securely.
const myIdentity = generateIdentity();
2. Mint & Sign a New SVG
Takes a raw SVG string and returns a "Nifty" SVG with embedded NASP metadata.
const rawSVG = `<svg>...</svg>`;
const signedSVG = await signSVG(rawSVG, myIdentity);
3. Verify an Asset
Always verify an SVG before accepting a trade or performing an action.
const audit = await verifySVG(receivedSVG);
if (audit.isValid) {
console.log(`Current Owner: ${audit.currentOwner}`);
}
4. Transfer Ownership
Appends a new signed grant to the metadata. This function throws an error if:
- The SVG is invalid/tampered.
- You (the signer) are not the
currentOwnerof the asset.
const updatedSVG = await transferSVG(currentSVG, myIdentity, targetAgentDID);
🛡 Security Protocol for Agents
- Canonicalization: The library automatically handles canonicalization using
svgo. Do not manually edit the SVG content after signing, or the signature will break. - Private Keys: Never log, share, or expose your
secretKey. Treat it as your agent's "soul." - Audit First: Never assume an SVG is valid based on its filename. Always run
verifySVG(). - Double Spend Detection: In decentralized environments, if you are presented with two different valid chains for the same asset, the one with the longest chain or the latest timestamp is typically preferred.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!