{"id":13756727,"url":"https://github.com/nspcc-dev/neo-go","last_synced_at":"2025-12-30T03:34:45.319Z","repository":{"id":37427780,"uuid":"119681680","full_name":"nspcc-dev/neo-go","owner":"nspcc-dev","description":"Go Node and SDK for the Neo blockchain","archived":false,"fork":false,"pushed_at":"2025-05-06T10:23:48.000Z","size":31011,"stargazers_count":126,"open_issues_count":193,"forks_count":85,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-06T11:33:23.345Z","etag":null,"topics":["blockchain","go","golang","neo","smartcontracts"],"latest_commit_sha":null,"homepage":"","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/nspcc-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-01-31T12:02:17.000Z","updated_at":"2025-05-06T10:23:50.000Z","dependencies_parsed_at":"2023-07-13T09:52:31.303Z","dependency_job_id":"8cae06dc-22fe-40b1-99ab-47e64645239c","html_url":"https://github.com/nspcc-dev/neo-go","commit_stats":null,"previous_names":["cityofzion/neo-go"],"tags_count":161,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nspcc-dev%2Fneo-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nspcc-dev%2Fneo-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nspcc-dev%2Fneo-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nspcc-dev%2Fneo-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nspcc-dev","download_url":"https://codeload.github.com/nspcc-dev/neo-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253365184,"owners_count":21897180,"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":["blockchain","go","golang","neo","smartcontracts"],"created_at":"2024-08-03T11:00:52.194Z","updated_at":"2025-12-30T03:34:45.312Z","avatar_url":"https://github.com/nspcc-dev.png","language":"Go","funding_links":[],"categories":["SDKs"],"sub_categories":["MainNet and TestNet (2.7.6+)"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./.github/logo_dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./.github/logo_light.png\"\u003e\n    \u003cimg src=\"./.github/logo_light.png\"  width=\"300px\" alt=\"NeoGo logo\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eGo\u003c/b\u003e Node and SDK for the \u003ca href=\"https://neo.org\"\u003eNeo\u003c/a\u003e blockchain.\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n[![codecov](https://codecov.io/gh/nspcc-dev/neo-go/branch/master/graph/badge.svg)](https://codecov.io/gh/nspcc-dev/neo-go)\n[![GithubWorkflows Tests](https://github.com/nspcc-dev/neo-go/actions/workflows/tests.yml/badge.svg)](https://github.com/nspcc-dev/neo-go/actions/workflows/tests.yml)\n[![Report](https://goreportcard.com/badge/github.com/nspcc-dev/neo-go)](https://goreportcard.com/report/github.com/nspcc-dev/neo-go)\n[![GoDoc](https://godoc.org/github.com/nspcc-dev/neo-go?status.svg)](https://godoc.org/github.com/nspcc-dev/neo-go)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/nspcc-dev/neo-go?sort=semver)\n![License](https://img.shields.io/github/license/nspcc-dev/neo-go.svg?style=popout)\n\n# Overview\n\nNeoGo is a complete platform for distributed application development built on\ntop of and compatible with the [Neo project](https://github.com/neo-project).\nThis includes, but not limited to (see documentation for more details):\n\n- [Consensus node](docs/consensus.md)\n- [RPC node \u0026 client](docs/rpc.md)\n- [CLI tool](docs/cli.md)\n- [Smart contract compiler](docs/compiler.md)\n- [Neo virtual machine](docs/vm.md)\n- [Smart contract examples](examples/README.md)\n- [Oracle service](docs/oracle.md)\n- [State validation service](docs/stateroots.md)\n\nThe protocol implemented is compatible with the latest C# node releases, but\nhas some experimental extensions as well.\n\n# Getting started\n\n## Installation\n\nNeoGo is distributed as a single binary that includes all the functionality\nprovided (but smart contract compiler requires Go compiler to operate). You\ncan grab it from [releases\npage](https://github.com/nspcc-dev/neo-go/releases), use a Docker image (see\n[Docker Hub](https://hub.docker.com/r/nspccdev/neo-go) for various releases of\nNeoGo, `latest` points to the latest release) or build yourself.\n\n### Building\n\nBuilding NeoGo requires modern Go (any officially supported version, see\n[NeoSPCC Go policy](https://github.com/nspcc-dev/.github/blob/master/go.md)\nfor how we manage Go updates) and `make`:\n\n```\nmake\n```\n\nThe resulting binary is `bin/neo-go`. Notice that using some random revision\nfrom the `master` branch is not recommended (it can have any number of\nincompatibilities and bugs depending on the development stage), please use\ntagged released versions.\n\n#### Building on Windows\n\nTo build NeoGo on Windows platform we recommend you to install `make` from [MinGW\npackage](https://osdn.net/projects/mingw/). Then, you can build NeoGo with:\n\n```\nmake\n```\n\nThe resulting binary is `bin/neo-go.exe`.\n\n## Running a node\n\nA node needs to connect to some network, either local one (usually referred to\nas `privnet`) or public (like `mainnet` or `testnet`). Network configuration\nis stored in a file and NeoGo allows you to store multiple files in one\ndirectory (`./config` by default) and easily switch between them using network\nflags.\n\nTo start Neo node on a private network, use:\n\n```\n./bin/neo-go node\n```\n\nOr specify a different network with an appropriate flag like this:\n\n```\n./bin/neo-go node --mainnet\n```\n\nAvailable network flags:\n- `--mainnet, -m`\n- `--privnet, -p`\n- `--testnet, -t`\n\nOr point NeoGo to a specific config with `--config-file` parameter like:\n```\n./bin/neo-go node --config-file ./config/protocol.mainnet.neofs.yml\n```\n\nTo run a consensus/committee node, refer to [consensus\ndocumentation](docs/consensus.md).\n\nIf you're running a node on Windows, please turn off or configure Windows\nFirewall appropriately (allowing inbound connections to the P2P port).\n\n### Docker\n\nBy default, the `CMD` is set to run a node on `privnet`. So, to do this, simply run:\n\n```bash\ndocker run -d --name neo-go -p 20332:20332 -p 20331:20331 nspccdev/neo-go\n```\n\nWhich will start a node on `privnet` and expose node's ports `20332` (P2P\nprotocol) and `20331` (JSON-RPC server).\n\n### Importing mainnet/testnet dump files\n\nIf you want to jump-start your mainnet or testnet node with NEP-32 chain\narchives [provided by NGD](https://sync.ngd.network/)\n[or NeoSPCC](https://archive.fs.neo.org/), follow these instructions:\n```\n$ wget .../chain.acc.zip # chain dump file (not needed for NeoSPCC archives)\n$ unzip chain.acc.zip    # (not needed for NeoSPCC archives)\n$ ./bin/neo-go db restore -m -i chain.acc # for testnet use '-t' flag instead of '-m'\n```\n\nThe process differs from the C# node in that block importing is a separate\nmode. After it ends, the node can be started normally.\n\n## Running a private network\n\nRefer to [consensus node documentation](docs/consensus.md).\n\n## Smart contract development\n\nPlease refer to [NeoGo smart contract development\nworkshop](https://github.com/nspcc-dev/neo-go-sc-wrkshp) that shows some\nsimple contracts that can be compiled/deployed/run using NeoGo compiler, SDK\nand a private network. For details on how Go code is translated to Neo VM\nbytecode and what you can and can not do in a smart contract, please refer to the\n[compiler documentation](docs/compiler.md).\n\nRefer to [examples](examples/README.md) for more Neo smart contract examples\nwritten in Go.\n\n## Wallets\n\nNeoGo wallet is just a\n[NEP-6](https://github.com/neo-project/proposals/blob/68398d28b6932b8dd2b377d5d51bca7b0442f532/nep-6.mediawiki)\nfile that is used by CLI commands to sign various things. CLI commands are not\na direct part of the node, but rather a part of the NeoGo binary, their\nimplementations use RPC to query data from the blockchain and perform any\nrequired actions. It's not required to open a wallet on an RPC node (unless\nyour node provides some service for the network like consensus or oracle nodes\ndo).\n\n## Monitoring\nNeoGo provides [Prometheus](https://prometheus.io/docs/guides/go-application) and\n[Pprof](https://golang.org/pkg/net/http/pprof/) services that can be enabled\nin the node in order to provide additional monitoring and debugging data.\n\nConfiguring any of the two services is easy, add the following section (`Pprof`\ninstead of `Prometheus` if you need that) to the respective `config/protocol.*.yml`:\n```\n  Prometheus:\n    Enabled: true\n    Addresses:\n      - \":2112\"\n```\nwhere you can switch on/off and define port. Prometheus is enabled and Pprof is disabled by default.\n\n## Contributing\n\nFeel free to contribute to this project after reading the\n[contributing guidelines](CONTRIBUTING.md).\n\nBefore starting to work on a certain topic, create a new issue first\ndescribing the feature/topic you are going to implement.\n\n# Contact\n\n- [@AnnaShaleva](https://github.com/AnnaShaleva) on GitHub\n- [@roman-khimov](https://github.com/roman-khimov) on GitHub\n- Reach out to us on the [Neo Discord](https://discordapp.com/invite/R8v48YA) channel\n\n# License\n\n- Open-source [MIT](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnspcc-dev%2Fneo-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnspcc-dev%2Fneo-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnspcc-dev%2Fneo-go/lists"}