{"id":15152780,"url":"https://github.com/ipfs/go-ipns","last_synced_at":"2025-09-29T23:32:24.974Z","repository":{"id":33901832,"uuid":"137525377","full_name":"ipfs/go-ipns","owner":"ipfs","description":"Utilities for creating, parsing, and validating IPNS records","archived":true,"fork":false,"pushed_at":"2023-06-14T11:15:32.000Z","size":200,"stargazers_count":40,"open_issues_count":1,"forks_count":30,"subscribers_count":26,"default_branch":"master","last_synced_at":"2024-11-15T22:03:50.615Z","etag":null,"topics":["ipfs","ipns"],"latest_commit_sha":null,"homepage":"https://docs.ipfs.tech/concepts/ipns/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ipfs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-06-15T19:38:16.000Z","updated_at":"2024-05-30T10:30:18.000Z","dependencies_parsed_at":"2022-08-07T23:30:35.767Z","dependency_job_id":"7da37a9f-81ec-4f45-b060-e51049eb2ed9","html_url":"https://github.com/ipfs/go-ipns","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipfs","download_url":"https://codeload.github.com/ipfs/go-ipns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234673671,"owners_count":18869700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ipfs","ipns"],"created_at":"2024-09-26T16:22:53.510Z","updated_at":"2025-09-29T23:32:19.547Z","avatar_url":"https://github.com/ipfs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-ipns\n\n\u003e ipns record definitions\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai)\n[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](https://ipfs.tech/)\n[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n[![GoDoc](https://godoc.org/github.com/ipfs/go-datastore?status.svg)](https://godoc.org/github.com/ipfs/go-ipns)\n\n\n## ❗ This repo is no longer maintained.\n👉 We highly recommend switching to the maintained version at https://github.com/ipfs/boxo/tree/main/ipns.\n🏎️ Good news!  There is [tooling and documentation](https://github.com/ipfs/boxo#migrating-to-boxo) to expedite a switch in your repo. \n\n⚠️ If you continue using this repo, please note that security fixes will not be provided (unless someone steps in to maintain it).\n\n📚 Learn more, including how to take the maintainership mantle or ask questions, [here](https://github.com/ipfs/boxo/wiki/Copied-or-Migrated-Repos-FAQ).\n\n\nThis package contains all of the components necessary to create, understand, and validate IPNS records. It does *not* publish or resolve those records. [Kubo](https://github.com/ipfs/kubo) uses this package internally to manipulate records.\n\n## Usage\n\nTo create a new IPNS record:\n\n```go\nimport (\n\t\"time\"\n\n\tipns \"github.com/ipfs/go-ipns\"\n\tcrypto \"github.com/libp2p/go-libp2p-crypto\"\n)\n\n// Generate a private key to sign the IPNS record with. Most of the time, \n// however, you'll want to retrieve an already-existing key from IPFS using the\n// go-ipfs/core/coreapi CoreAPI.KeyAPI() interface.\nprivateKey, publicKey, err := crypto.GenerateKeyPair(crypto.RSA, 2048)\nif err != nil {\n  panic(err)\n}\n\n// Create an IPNS record that expires in one hour and points to the IPFS address\n// /ipfs/Qme1knMqwt1hKZbc1BmQFmnm9f36nyQGwXxPGVpVJ9rMK5\nipnsRecord, err := ipns.Create(privateKey, []byte(\"/ipfs/Qme1knMqwt1hKZbc1BmQFmnm9f36nyQGwXxPGVpVJ9rMK5\"), 0, time.Now().Add(1*time.Hour))\nif err != nil {\n\tpanic(err)\n}\n```\n\nOnce you have the record, you’ll need to use IPFS to *publish* it.\n\nThere are several other major operations you can do with `go-ipns`. Check out the [API docs](https://godoc.org/github.com/ipfs/go-ipns) or look at the tests in this repo for examples.\n\n## Documentation\n\nhttps://godoc.org/github.com/ipfs/go-ipns\n\n### Want to hack on IPFS?\n\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)\n\n## License\n\nCopyright (c) Protocol Labs, Inc. under the **MIT license**. See [LICENSE file](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fgo-ipns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipfs%2Fgo-ipns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fgo-ipns/lists"}