AgentSkillsCN

pinata

通过Pinata(JWT认证 + 辅助脚本),将文件与JSON永久固定至IPFS。

SKILL.md
--- frontmatter
name: pinata
description: Pin files and JSON to IPFS via Pinata (JWT auth + helper scripts).
homepage: https://docs.pinata.cloud/
metadata:
  {
    "lemon":
      {
        "emoji": "📌",
        "requires":
          {
            "config": ["PINATA_JWT"],
            "bins": ["curl"],
          },
      },
  }

Pinata

Use Pinata to pin content to IPFS.

This skill ships with small scripts (in scripts/) that wrap the Pinata API with reasonable defaults. Prefer PINATA_JWT auth.

Setup

Auth (recommended):

  • Set PINATA_JWT to a Pinata JWT (Bearer token).

Optional (legacy-only, not supported by all endpoints):

  • Set PINATA_API_KEY and PINATA_API_SECRET (some older endpoints accept these).

Optional endpoint overrides:

  • PINATA_API_URL (default: https://api.pinata.cloud)
  • PINATA_UPLOAD_URL (default: https://uploads.pinata.cloud)

Quickstart

Run these from the Pinata skill directory (seeded to ~/.lemon/agent/skill/pinata by default):

Test auth:

bash
./scripts/auth-test.sh

Upload a file (Pinata v3 uploads API):

bash
./scripts/upload-file.sh ./path/to/file.png --network private --name file.png

Pin a JSON document (wraps your JSON as pinataContent):

bash
./scripts/pin-json.sh ./metadata.json --name "metadata.json"

Pin an existing CID (by hash):

bash
./scripts/pin-by-hash.sh bafy... --name "my-cid"

Unpin:

bash
./scripts/unpin.sh bafy...

Notes

  • These scripts print raw JSON responses (so you can pipe into jq if you want).
  • For very large uploads, resumable uploads, or folder uploads, consider Pinata’s official tooling and docs: https://docs.pinata.cloud/