Content Pinning
Putting content on the IPFS network does not keep it there. Nodes cache what passes through them and garbage collect it later, so an unpinned CID is a link that works today and fails next month. Pinning is the instruction to keep specific content. It is the difference between published and temporarily cached.
For research data this matters. A CID cited in a paper has to resolve for as long as the paper is read, which is longer than any grant cycle.
Pinning is part of the write
There is no separate pin call. The API adds every object through the cluster's IPFS proxy with pin=true, so IPFS Cluster pins the envelope on every peer the moment POST /api/upload returns a CID.
# Uploading pins. Nothing else to do.
curl -X POST https://api.ekayana.io/api/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@dataset.csv"GET /api/pins lists everything you currently hold.
curl https://api.ekayana.io/api/pins -H "Authorization: Bearer $TOKEN"
# -> ["bafybeig...", "bafybeih..."]Three kinds of object are pinned this way.
- Sealed payloads, one CID per upload. Because each upload is encrypted under a fresh key, a CID has exactly one owner even when two people upload the same file. See File Storage.
- Metadata documents for DIDs. Creating a DID or changing its metadata pins a new
metadata.jsonand unpins the previous one. The DID document points at the current CID. - IPNS revisions. Publishing a new version through
POST /api/ipns/updatestores the new payload like any upload. Earlier versions stay pinned, so a citation of version 1 still resolves.
Unpinning follows the records
POST /api/delete with { "cid": "..." } removes your record and unpins the envelope on every peer once no record references the CID. Retiring a DID that was never anchored unpins its metadata document. A deactivated anchored DID has its document unpinned when the API reconciles the record with the chain. The pin list is for auditing what you store, and nothing in between needs maintenance.
What pinning does and does not promise
A pin keeps the bytes on every peer of the platform's private cluster. The peers share a swarm key and never join the public network, so nothing outside the cluster holds a copy unless the operator adds a peer or a reader fetches through the API. How many peers the cluster runs is the operator's deployment decision, and the API does not expose it. The CID guarantees verifiability. Any copy, from any peer, either matches its hash or is rejected.
Unpinning cannot recall an envelope a reader already fetched, so erasure leans on encryption rather than unpinning alone. A mutable reference on top of immutable pinned content is IPNS.