{"id":19824563,"url":"https://github.com/astarnetwork/astar","last_synced_at":"2026-02-20T17:05:10.601Z","repository":{"id":37047506,"uuid":"177367936","full_name":"AstarNetwork/Astar","owner":"AstarNetwork","description":"The dApp hub for blockchains of the future","archived":false,"fork":false,"pushed_at":"2025-04-08T02:08:49.000Z","size":201353,"stargazers_count":758,"open_issues_count":29,"forks_count":431,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-04-12T06:07:09.188Z","etag":null,"topics":["astar-network","blockchain","dapp","evm","kusama","plasm-network","polkadot","staking","substrate","wasm","web3"],"latest_commit_sha":null,"homepage":"https://astar.network/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AstarNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-03-24T03:51:39.000Z","updated_at":"2025-04-07T15:01:31.000Z","dependencies_parsed_at":"2023-10-14T20:37:45.709Z","dependency_job_id":"f60ba1be-8204-46df-a0a5-41884936994a","html_url":"https://github.com/AstarNetwork/Astar","commit_stats":null,"previous_names":["staketechnologies/plasm"],"tags_count":272,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarNetwork%2FAstar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarNetwork%2FAstar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarNetwork%2FAstar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarNetwork%2FAstar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AstarNetwork","download_url":"https://codeload.github.com/AstarNetwork/Astar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525143,"owners_count":21118618,"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":["astar-network","blockchain","dapp","evm","kusama","plasm-network","polkadot","staking","substrate","wasm","web3"],"created_at":"2024-11-12T11:04:37.515Z","updated_at":"2026-01-02T16:17:35.021Z","avatar_url":"https://github.com/AstarNetwork.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![astar-cover](https://user-images.githubusercontent.com/40356749/135799652-175e0d24-1255-4c26-87e8-447b192fd4b2.gif)\n\n\u003cdiv align=\"center\"\u003e\n\n[![Integration Action](https://github.com/AstarNetwork/Astar/workflows/Integration/badge.svg)](https://github.com/AstarNetwork/Astar/actions)\n[![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/AstarNetwork/Astar)](https://github.com/AstarNetwork/Astar/tags)\n[![Substrate version](https://img.shields.io/badge/Substrate-3.0.0-brightgreen?logo=Parity%20Substrate)](https://substrate.dev/)\n[![License](https://img.shields.io/github/license/AstarNetwork/Astar?color=green)](https://github.com/AstarNetwork/Astar/blob/production/shiden/LICENSE)\n \u003cbr /\u003e\n[![Twitter URL](https://img.shields.io/twitter/follow/AstarNetwork?style=social)](https://twitter.com/AstarNetwork)\n[![Twitter URL](https://img.shields.io/twitter/follow/ShidenNetwork?style=social)](https://twitter.com/ShidenNetwork)\n[![YouTube](https://img.shields.io/youtube/channel/subscribers/UC36JgEF6gqatVSK9xlzzrvQ?style=social)](https://www.youtube.com/channel/UC36JgEF6gqatVSK9xlzzrvQ)\n[![Docker](https://img.shields.io/docker/pulls/staketechnologies/astar-collator?logo=docker)](https://hub.docker.com/r/staketechnologies/astar-collator)\n[![Discord](https://img.shields.io/badge/Discord-gray?logo=discord)](https://discord.gg/astarnetwork)\n[![Telegram](https://img.shields.io/badge/Telegram-gray?logo=telegram)](https://t.me/PlasmOfficial)\n[![Medium](https://img.shields.io/badge/Medium-gray?logo=medium)](https://medium.com/astar-network)\n\n\u003c/div\u003e\n\nAstar Network is an interoperable blockchain based the Substrate framework and the hub for dApps within the Polkadot Ecosystem.\nWith Astar Network and Shiden Network, people can stake their tokens to a Smart Contract for rewarding projects that provide value to the network.\n\nFor contributing to this project, please read our [Contribution Guideline](./CONTRIBUTING.md).\n\n## Building From Source\n\n\u003e This section assumes that the developer is running on either macOS or Debian-variant operating system. For Windows, although there are ways to run it, we recommend using [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10) or from a virtual machine for stability.\n\nExecute the following command from your terminal to set up the development environment and build the node runtime.\n\n```bash\n# install Substrate development environment via the automatic script\n$ curl https://getsubstrate.io -sSf | bash -s -- --fast\n\n# clone the Git repository\n$ git clone --recurse-submodules https://github.com/AstarNetwork/Astar.git\n\n# change current working directory\n$ cd Astar\n\n# compile the node\n# note: you may encounter some errors if `wasm32-unknown-unknown` is not installed, or if the toolchain channel is outdated\n$ cargo build --profile production\n\n# show list of available commands\n$ ./target/production/astar-collator --help\n```\n\n### Building with Nix\n\n```bash\n# install Nix package manager:\n$ curl https://nixos.org/nix/install | sh\n\n# run from root of the project folder (`Astar/` folder)\n$ nix-shell -I nixpkgs=channel:nixos-21.05 third-party/nix/shell.nix --run \"cargo build --release\"\n```\n\n## Running a Collator Node\n\nTo set up a collator node, you must have a fully synced node with the proper arguments, which can be done with the following command.\n\n```bash\n# start the Shiden collator node with\n$ ./target/release/astar-collator \\\n  --base-path \u003cpath to save blocks\u003e \\\n  --name \u003cnode display name\u003e \\\n  --port 30333 \\\n  --rpc-port 9944 \\\n  --telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' \\\n  --rpc-cors all \\\n  --collator\n```\n\nNow, you can obtain the node's session key by sending the following RPC payload.\n\n```bash\n# send `rotate_keys` request\n$ curl -H 'Content-Type: application/json' --data '{ \"jsonrpc\":\"2.0\", \"method\":\"author_rotateKeys\", \"id\":1 }' localhost:9933\n\n# should return a long string of hex, which is your session key\n{\"jsonrpc\":\"2.0\",\"result\":\"\u003csession key in hex\u003e\",\"id\":1}\n```\n\nAfter this step, you should have a validator node online with a session key for your node.\nFor key management and validator rewards, consult our [validator guide online](https://docs.astar.network/build/validator-guide/configure-node).\n\n## Versioning\n\n### Historical Versioning (Up to `v5.44.0`)\n\nUp to the release `v5.44.0`, **Astar** releases contained both the client \u0026 the runtime blobs.\nIn general, each release contained both, with some specific releases (related to fixes) which only released e.g. client or runtime.\nStandard semantic versioning approach was used.\n\n### New Versioning Approach (From `v5.45.0`)\n\nStarting with v5.45.0, the release process has been split into separate client and runtime releases, each following distinct versioning schemes:\n\nThe **client release** will continue to follow semantic versioning, continuing where the former approach left off.\nE.g. the next expected minor release will be `v5.45.0`.\n\nThe **runtime release** will follow a new versioning approach - `runtime-XXYY`.\n\n* The `XX` part will be a number of 2 or more digits, starting with **10**, and will be incremented by **1** each time a new runtime release is made. E.g. `runtime-1000` will be followed by `runtime-1100`, which will be followed by `runtime-1200`, and so on. This is like a combination of _major_ and _minor_ semver versions.\n* The `YY` part will always be a 2 digit number, and serves as a _patch_ semver version. E.g. if we have `runtime-1000` and need to release a fix, the new release version will be `runtime-1001`.\n\nThe runtime crate version will align its major and minor versions with the Rust crate version, while the patch version will always remain `00`. For example, a runtime release for `runtime-1100` corresponds to the Rust runtime crate version `11.0.0`. A minor runtime release such as `runtime-1101` corresponds to the Rust runtime crate version `11.1.0`.\n\n## Workspace Dependency Handling\n\nAll dependencies should be listed inside the workspace's root `Cargo.toml` file.\nThis allows us to easily change version of a crate used by the entire repo by modifying the version in a single place.\n\nRight now, if **non_std** is required, `default-features = false` must be set in the root `Cargo.toml` file (related to this [issue](https://github.com/rust-lang/cargo/pull/11409)). Otherwise, it will have no effect, causing your compilation to fail.\nAlso `package` imports aren't properly propagated from root to sub-crates, so defining those should be avoided.\n\nDefining _features_ in the root `Cargo.toml` is additive with the features defined in concrete crate's `Cargo.toml`.\n\n**Adding Dependency**\n\n1. Check if the dependency is already defined in the root `Cargo.toml`\n    1. if **yes**, nothing to do, just take note of the enabled features\n    2. if **no**, add it (make sure to use `default-features = false` if dependency is used in _no_std_ context)\n2. Add `new_dependecy = { workspace = true }` to the required crate\n3. In case dependency is defined with `default-features = false` but you need it in _std_ context, add `features = [\"std\"]` to the required crate.\n\n## Further Reading\n\n* [Official Documentation](https://docs.astar.network/)\n* [Whitepaper](https://github.com/AstarNetwork/plasmdocs/blob/master/wp/en.pdf)\n* [Whitepaper(JP)](https://github.com/AstarNetwork/plasmdocs/blob/master/wp/jp.pdf)\n* [Substrate Developer Hub](https://substrate.dev/docs/en/)\n* [Substrate Glossary](https://substrate.dev/docs/en/knowledgebase/getting-started/glossary)\n* [Substrate Client Library Documentation](https://polkadot.js.org/docs/)\n* [Astar Network Audit Reports](https://github.com/AstarNetwork/Audits)\n* [Astar Code Documentation](https://astarnetwork.github.io/Astar/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastarnetwork%2Fastar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastarnetwork%2Fastar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastarnetwork%2Fastar/lists"}