| 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:
./scripts/auth-test.sh
Upload a file (Pinata v3 uploads API):
./scripts/upload-file.sh ./path/to/file.png --network private --name file.png
Pin a JSON document (wraps your JSON as pinataContent):
./scripts/pin-json.sh ./metadata.json --name "metadata.json"
Pin an existing CID (by hash):
./scripts/pin-by-hash.sh bafy... --name "my-cid"
Unpin:
./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/