Portal Community
Why IPNS exists: a CID is a hash of content — it changes every time the content changes. IPNS gives you a stable name (backed by a keypair) that can be re-published to point at a new CID, so downstream consumers can follow a fixed identifier instead of updating a CID everywhere it's referenced.

publish

FieldTypeRequiredDefaultDescription
targetPathtext✓ YesPath to publish, e.g. /ipfs/<cid>.
keyNametextNoselfLocal IPNS key to publish under — must already exist (see Key Operations).
resolveboolNotrueCheck that targetPath resolves before publishing.
lifetimetextNo24hRecord expiry duration.
ttltextNoSuggested resolver cache TTL hint.
v1compatboolNotrueProduce a record readable by both IPNS v1 and v2 resolvers.
allowOfflineboolNofalseAllow publishing while the daemon has no network peers.
sequenceintNoManual sequence-number override (advanced/rare).

Missing targetPathCFG_MISSING_TARGET_PATH; blank keyNameCFG_MISSING_KEY_NAME. Response: { ipnsName, targetPath, ttl }.

resolve

FieldTypeRequiredDefaultDescription
ipnsNametext✓ YesIPNS name or peer ID to resolve.
recursiveboolNotrueFollow chained IPNS names to a final /ipfs/... path.
nocacheboolNofalseBypass the local resolver cache and force a fresh DHT/network lookup.
dhtRecordCountintNoMinimum matching DHT records required before accepting a result.
dhtTimeouttextNo5sMaximum duration to wait on a DHT-based resolution.

Missing ipnsNameCFG_MISSING_IPNS_NAME. Response: { ipnsName, resolvedPath }.

publish requires an existing key: the keyName you publish under must already exist in the local keystore. The implicit self key (the node's own identity) is always present; anything else must first be created via key/generate.