{"id":13803761,"url":"https://github.com/starkware-libs/papyrus","last_synced_at":"2025-09-07T06:33:34.482Z","repository":{"id":65324994,"uuid":"490190929","full_name":"starkware-libs/papyrus","owner":"starkware-libs","description":"Papyrus is a StarkNet full node written in Rust.","archived":false,"fork":false,"pushed_at":"2024-10-14T09:16:20.000Z","size":86648,"stargazers_count":318,"open_issues_count":0,"forks_count":89,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-12-25T05:40:18.169Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/starkware-libs.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-09T08:08:40.000Z","updated_at":"2024-12-04T16:17:08.000Z","dependencies_parsed_at":"2023-09-28T16:22:24.145Z","dependency_job_id":"1e5efb45-5281-475e-8efd-122dc00693d0","html_url":"https://github.com/starkware-libs/papyrus","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-libs%2Fpapyrus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-libs%2Fpapyrus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-libs%2Fpapyrus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starkware-libs%2Fpapyrus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starkware-libs","download_url":"https://codeload.github.com/starkware-libs/papyrus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232187397,"owners_count":18485386,"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":[],"created_at":"2024-08-04T01:00:37.648Z","updated_at":"2025-01-02T11:04:11.168Z","avatar_url":"https://github.com/starkware-libs.png","language":"Rust","funding_links":[],"categories":["Additional developer resources","Layer 2","Rust"],"sub_categories":["Starknet"],"readme":"= Archived\n\n*This repository is archived and no longer maintained.*\n\nThe functionality of this repository has been integrated into the https://github.com/starkware-libs/sequencer[Starknet sequencer reposiroty].\n\n:toc:\n:toclevels: 4\n[pass]\n++++\n\u003cdiv align=\"center\"\u003e\n++++\n= Papyrus\nA Starknet full node\n\nimage::./resources/img/papyrus-logo-square.png[Papyrus logo,200,200, align=\"center\"]\n\nlink:https://github.com/starkware-libs/papyrus/issues/new?assignees=\u0026labels=bug\u0026template=01_BUG_REPORT.md\u0026title=bug%3A+[Report a Bug]  ·  link:https://github.com/starkware-libs/papyrus/issues/new?assignees=\u0026labels=enhancement\u0026template=02_FEATURE_REQUEST.md\u0026title=feat%3A+\"[Request a Feature]  ·  link:https://github.com/starkware-libs/papyrus/discussions\"[Ask a Question]\n\nimage:https://img.shields.io/github/actions/workflow/status/starkware-libs/papyrus/ci.yml?branch=main[Github workflow status]\nimage:https://img.shields.io/github/license/starkware-libs/papyrus.svg?style=flat-square[#LICENSE,title=Project license]\nimage:https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square[PRs welcome,link=https://github.com/starkware-libs/papyrus/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22]\nimage:https://codecov.io/gh/starkware-libs/papyrus/branch/main/graph/badge.svg?token=YZA9IPDHRM[codecov,link=https://codecov.io/gh/starkware-libs/papyrus]\n[pass]\n++++\n\u003c/div\u003e\n++++\n\n== About\n\nPapyrus is a Starknet full node implemented in Rust. Papyrus tracks Starknet’s state as it evolves over time, and enables you to query this state and to execute transactions via Starknet’s JSON-RPC.\n\n=== Supported Starknet versions\n\nThis Papyrus version supports the following starknet versions:\n\n* v0.13.0\n\n== Disclaimer\n\nPapyrus is a work in progress.\n\nUse it at your own risk.\n\n== Getting started\n\n[#compiling-and-running-papyrus]\n=== Building and running Papyrus locally\n\n[discrete]\n==== Prerequisites\n\n* https://www.rust-lang.org/tools/install[Rust] must be installed. Minimum supported version is `1.76`.\n* You must have access to an Ethereum node. For example, you can use a node provider such as Infura.\n\n[discrete]\n==== Procedure\n\n. Fork and clone the Github repo.\n. Build and run a Papyrus node with the default configuration by running the following commands:\n+\n[source,bash]\n-----\nmkdir data\ncargo run --release --package papyrus_node --bin papyrus_node -- --base_layer.node_url \u003cethereum_node_url\u003e\n-----\n+\n[NOTE]\n====\nPapyrus uses the `data` directory for the node's storage, as follows:\n\n`./data/\u003cchain_id\u003e`\n\nYou can configure the directory name using the `storage.db_config.path_prefix` configuration parameter.\n====\n. See the version of Papyrus by running the following command:\n+\n[source,bash]\n----\ncargo run --release --package papyrus_node --bin papyrus_node -- --version\n----\n\n=== Local node configuration\n\nThe configuration is stored in one or more configuration files in `.json` format.\n\nThe default Papyrus configuration file, link:https://github.com/starkware-libs/papyrus/blob/main/config/default_config.json[`default_config.json`], includes descriptions of all available parameters.\n\n// , including pointers to common values and #is_none flags for optional parameters.\n\n=== Customizing your configuration\n\nYou can override the default configuration in the following ways:\n\n* Refer to one or more custom configuration files, using the same format as the default configuration file, `default_config.json`. For example, see any of the preset configuration files in this repository at `/config/presets/`. You can use configuration files when running a local node only, not a Docker image.\n* Include configuration options in the command line when you run Papyrus.\n* Set environment variables in the command line when you run Papyrus.\n\n==== Configuration files (local node only)\n\nThe following rules apply:\n\n* You do not need to specify the default configuration file.\n* There is no limit on the number of custom configuration files you use.\n* If the same configuration parameter appears in multiple configuration files, the last file in the list determines the value.\n\nYou can create separate configuration files to override specific configuration parameters.\n\nTo create a custom configuration file, create a `.json` file using the same format as the default configuration file.\n\nTo specify custom configuration files, include the `--config_file` command-line option when you run the full node locally, as follows:\n\n[source,bash,subs=\"verbatim,quotes\"]\n----\ncargo run --release --package papyrus_node --bin papyrus_node -- --base_layer.node_url \u003cethereum_node_url\u003e --config-file \u003cpath_to_custom_configuration_file_1\u003e \u003cpath_to_custom_configuration_file___n__\u003e\n----\n\nFor example, preset `.json` files for several Starknet networks are located in this repository at  https://github.com/starkware-libs/papyrus/blob/main/config/presets[`/config/presets`]. To use Sepolia testnet, you need to override the default values by using the file `/config/presets/sepolia_testnet.json`, as follows:\n\n[source,bash,subs=\"verbatim,quotes\"]\n----\ncargo run --release --package papyrus_node --bin papyrus_node -- --base_layer.node_url \u003cethereum_node_url\u003e --config-file /config/presets/sepolia_testnet.json\n----\n\n==== Configuration via the command-line (local node and Docker image)\n\nYou can specify configuration parameters as command-line options. To see all available configuration parameters, enter the following command:\n\n[source,bash]\n----\ncargo run --release --package papyrus_node --bin papyrus_node -- --help\n----\n\nFor example, to use Sepolia testnet, run the following command:\n\n[source,base,subs=\"verbatim,quotes\"]\n----\ncargo run --release --package papyrus_node --bin papyrus_node -- --base_layer.node_url \u003cethereum_node_url\u003e \\\n--chain_id SN_SEPOLIA \\\n--starknet_url https://alpha-sepolia.starknet.io/ \\\n--base_layer.starknet_contract_address 0xe2bb56ee936fd6433dc0f6e7e3b8365c906aa057\n----\n\nFor more information, see the papyrus-config https://github.com/starkware-libs/papyrus/blob/main/crates/papyrus_config/README.md[README].\n\n=== Running Papyrus with Docker\n\n[discrete]\n==== Prerequisites\n\n* https://docs.docker.com/get-docker/[Docker] should be installed.\n\n[discrete]\n==== Procedure\n\n. Make a local directory to use for the container’s data. You only need to complete this step the first time you run Papyrus.\n+\n[source,bash]\n----\nmkdir \u003clocal-host-data-path\u003e\n----\n. Run a Papyrus node with the default configuration. You must explicitly give the container write access to the `\u003clocal-host-data-path\u003e` directory by adding `--user \"$(id -u):$(id -g)\"` to the `docker run` command.\n+\nEnter the following command:\n+\n[source,bash]\n----\ndocker run --rm --name papyrus\\\n  -p 8080-8081:8080-8081 \\\n  -v /\u003clocal-host-data-path\u003e:/app/data \\\n  ghcr.io/starkware-libs/papyrus:dev \\\n  --base_layer.node_url \u003cethereum_node_url\u003e \\\n  --user \"$(id -u):$(id -g)\"\n----\n+\n[NOTE]\n====\nYou must include the `dev`, tag which tracks the development branch and contains the most up-to-date code. When an official release is available, you can use the `latest` tag for the latest release.\n====\n\n==== Upgrading the Docker container\n\nCurrently, there is no automatic upgrade mechanism. Make sure to periodically pull the latest image and re-run the node.\n\n==== Docker container memory usage\n\nThe Papyrus node uses all available RAM in order to cache the storage.\n\nIf no other applications are running on your machine, this is the recommended configuration.\n\nOtherwise, you can limit the node's memory usage by adding the `--memory` flag to run the node in a container with limited memory. Be aware that limiting the memory usage might make the node less efficient, as doing so decreases storage caching.\n\nFor example, to limit memory usage to 1GB, run the container with the following command:\n\n[source,bash]\n----\ndocker run --rm --name papyrus\\\n  -p 8080-8081:8080-8081 \\\n  -v /\u003clocal-host-data-path\u003e:/app/data \\\n  --memory 1g\n  ghcr.io/starkware-libs/papyrus:dev \\\n  --base_layer.node_url \u003cethereum_node_url\u003e \\\n  --user \"$(id -u):$(id -g)\"\n----\n\nFor more information, see https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory[Limit a container's access to memory] in the Docker documentation.\n\n== Sending API requests to the node\n\nWhen sending API requests, send them to the path `/rpc/\u003cstarknet-rpc-version-id\u003e`.\n\nWhere `\u003cstarknet-rpc-version-id\u003e` is one of the following strings:\n\n* `v0_6`\n* `v0_7`\n\nSee the API specification at the https://github.com/starkware-libs/starknet-specs/[Starknet specifications repository] on Github. You can send API requests using the following command:\n\n[source,bash]\n----\ncurl --location '\u003cnode_path\u003e/rpc/\u003cstarknet-rpc-version-id\u003e' --header 'Content-Type: application/json'\\\n --data '{\"jsonrpc\":\"2.0\",\"id\":0,\"method\":\"\u003cmethod\u003e\", \"params\": \"\u003cparams\u003e\"}'\n----\n\nFor example, to send a request calling the `starknet_getBlockTransactionCount` method, on block number 100000, using the 0.4.0 version of the API where `\u003cnode_path\u003e` is `localhost:8080`, use the following command:\n\n[source,bash]\n----\ncurl --location 'localhost:8080/rpc/v0_7_0' --header 'Content-Type: application/json'\\\n --data '{\"jsonrpc\":\"2.0\",\"id\":0,\"method\":\"starknet_getBlockTransactionCount\", \"params\": [{\"block_number\": 100000}] }'\n----\n\n== JSON RPC API endpoints\n\n[cols=\",,\",]\n|===\n|Endpoint |V0.6 |V0.7\n\n|`starknet_addDeclareTransaction` |image:https://lh7-us.googleusercontent.com/g1om8QyIrLsSpgSiQ32w-Uk4ICU03_JeFYNwz8N9BfTviIMCN0DwKGGP_bDpX7pv_StNK9yWMQ39lZdNHn1o7xzcrBu1s0WHLAaBD2-nPqhMDGf2l9K6c67oIRV0kmIAQk580wcKhRSGpbj9qF1SVoQ[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/g1om8QyIrLsSpgSiQ32w-Uk4ICU03_JeFYNwz8N9BfTviIMCN0DwKGGP_bDpX7pv_StNK9yWMQ39lZdNHn1o7xzcrBu1s0WHLAaBD2-nPqhMDGf2l9K6c67oIRV0kmIAQk580wcKhRSGpbj9qF1SVoQ[image,width=15,height=14]\n|`starknet_addDeployAccountTransaction` |image:https://lh7-us.googleusercontent.com/B8OBZj3cblLUKbV6nRAmqPjzo86hmhw5XFBxYI8Xj1ZOpY6YoA3l-jiD2INst0aVVu7vsw3XBooNWfy-KulRi2ugDDG2XZpllKizcWDOqCC5uObph-RZWe4JGXbGu110oYtOoKYnRMtMOrl6I3Wz47s[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/g1om8QyIrLsSpgSiQ32w-Uk4ICU03_JeFYNwz8N9BfTviIMCN0DwKGGP_bDpX7pv_StNK9yWMQ39lZdNHn1o7xzcrBu1s0WHLAaBD2-nPqhMDGf2l9K6c67oIRV0kmIAQk580wcKhRSGpbj9qF1SVoQ[image,width=15,height=14]\n|`starknet_addInvokeTransaction` |image:https://lh7-us.googleusercontent.com/-nCpIHRsN1sdvLKLMnROTpIVe47WJVzvriYawbDkMq_vEU_9-4LMkDE50du4Kt3ldKsoo0dQ75vEiS6vdRCNZKZEMFfpMNL3kwEalFIr6xTuunGecGT5uixtyQPXKKV60fbgihWsM8UWJ9o6U214XyQ[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/-nCpIHRsN1sdvLKLMnROTpIVe47WJVzvriYawbDkMq_vEU_9-4LMkDE50du4Kt3ldKsoo0dQ75vEiS6vdRCNZKZEMFfpMNL3kwEalFIr6xTuunGecGT5uixtyQPXKKV60fbgihWsM8UWJ9o6U214XyQ[image,width=15,height=14]\n|`starknet_blockHashAndNumber` |image:https://lh7-us.googleusercontent.com/EoO9RVXThPQiY_jembL_X79RNAbVBKS8uPFm3B6825BtCaH8OGjUtQoaLHXFsNWPAgDL3LW3qqPzCY8PBpx4FYxP2CeEA1-d5xR1zFnC4l4xEdWX3iyvLDANfD4jrpixnlWJJnLCINUYf_aOOx4rKi8[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/EoO9RVXThPQiY_jembL_X79RNAbVBKS8uPFm3B6825BtCaH8OGjUtQoaLHXFsNWPAgDL3LW3qqPzCY8PBpx4FYxP2CeEA1-d5xR1zFnC4l4xEdWX3iyvLDANfD4jrpixnlWJJnLCINUYf_aOOx4rKi8[image,width=15,height=14]\n|`starknet_blockNumber` |image:https://lh7-us.googleusercontent.com/lRvXpP6e55IY8f_ABJgiWIl7KXw8tSmscatVsdr-mJmUjYdb1EnPTRCL6Nzf9Z3B2HKJRAYALr1Ky3sT94UaTdDeOOBoU2S78hx7XssJTx1tfmsYFjy1X4eugRr7UkewcL5cEkvlM0wBaIweobOzqwM[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/lRvXpP6e55IY8f_ABJgiWIl7KXw8tSmscatVsdr-mJmUjYdb1EnPTRCL6Nzf9Z3B2HKJRAYALr1Ky3sT94UaTdDeOOBoU2S78hx7XssJTx1tfmsYFjy1X4eugRr7UkewcL5cEkvlM0wBaIweobOzqwM[image,width=15,height=14]\n|`starknet_call` |image:https://lh7-us.googleusercontent.com/AMJELrIrqfmtu1peFMSAp_8fwbEq0ii2oQ8WmCQCsashQtXBXzjB_xX0_ULCAkub-pyuXhgzESbuFo4MBp_TAL7jOdls16wT5iPvAY66z64dC41eY2RsgpfU75W9FbSaoWW02OgKwR74mb9w0oOyhfI[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/AMJELrIrqfmtu1peFMSAp_8fwbEq0ii2oQ8WmCQCsashQtXBXzjB_xX0_ULCAkub-pyuXhgzESbuFo4MBp_TAL7jOdls16wT5iPvAY66z64dC41eY2RsgpfU75W9FbSaoWW02OgKwR74mb9w0oOyhfI[image,width=15,height=14]\n|`starknet_chainId` |image:https://lh7-us.googleusercontent.com/XAAffcKlc1YqokxRhj5IP9omLNCXVlZu__OeF1sMpD2Am4FHcqF6kZgxw3nd7VAl5dtoRAdqpFqZl49VID6FPZF5dYwYUxGALu4cFE5IhlErvEwvbygrLBmbS3LlCeoAXVc7tznIiBh3qIEDj38cMOU[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/XAAffcKlc1YqokxRhj5IP9omLNCXVlZu__OeF1sMpD2Am4FHcqF6kZgxw3nd7VAl5dtoRAdqpFqZl49VID6FPZF5dYwYUxGALu4cFE5IhlErvEwvbygrLBmbS3LlCeoAXVc7tznIiBh3qIEDj38cMOU[image,width=15,height=14]\n|`starknet_estimateFee` |image:https://lh7-us.googleusercontent.com/M0LxIZ_Hc3i586qUusRF1ajKBJy7pfGkFjyXPoJJjkqo3ZuDQSoeg5Xeq2hZmEf8i3cQIryS-QutIYh91yrX096YMKFhtXLpUxNha1oMAlXqDdYZsWYAsIaQr413Ckwzt3xdS4XqG7wpFCMwNLHsyC0[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/M0LxIZ_Hc3i586qUusRF1ajKBJy7pfGkFjyXPoJJjkqo3ZuDQSoeg5Xeq2hZmEf8i3cQIryS-QutIYh91yrX096YMKFhtXLpUxNha1oMAlXqDdYZsWYAsIaQr413Ckwzt3xdS4XqG7wpFCMwNLHsyC0[image,width=15,height=14]\n|`starknet_estimateMessageFee` |image:https://lh7-us.googleusercontent.com/M0LxIZ_Hc3i586qUusRF1ajKBJy7pfGkFjyXPoJJjkqo3ZuDQSoeg5Xeq2hZmEf8i3cQIryS-QutIYh91yrX096YMKFhtXLpUxNha1oMAlXqDdYZsWYAsIaQr413Ckwzt3xdS4XqG7wpFCMwNLHsyC0[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/M0LxIZ_Hc3i586qUusRF1ajKBJy7pfGkFjyXPoJJjkqo3ZuDQSoeg5Xeq2hZmEf8i3cQIryS-QutIYh91yrX096YMKFhtXLpUxNha1oMAlXqDdYZsWYAsIaQr413Ckwzt3xdS4XqG7wpFCMwNLHsyC0[image,width=15,height=14]\n|`starknet_getBlockTransactionCount` |image:https://lh7-us.googleusercontent.com/Il18PreRk3nlngA_130hPf-R8hzEAYpKAMkGOHJ3n1cH85L_0xa3YMrBMW8YisJmOfypRz_JKxwAYAr4ecg2SxnWfwO4QU7lNdj9qvna8y3zVf2tdr1p2YobgOWMgjzOfIqk3lUoxm4HkcXM6-5Ypeo[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/Il18PreRk3nlngA_130hPf-R8hzEAYpKAMkGOHJ3n1cH85L_0xa3YMrBMW8YisJmOfypRz_JKxwAYAr4ecg2SxnWfwO4QU7lNdj9qvna8y3zVf2tdr1p2YobgOWMgjzOfIqk3lUoxm4HkcXM6-5Ypeo[image,width=15,height=14]\n|`starknet_getBlockWithTxHashes` |image:https://lh7-us.googleusercontent.com/sMIa3FRJlsY44FxGMxPeg_Q2L_ZkLlT70YWQiUkmAx9MNgbroWfKecSbOB0Av8zFRGlJgXgq7aqUO2vlbeRZPVCnTSgvBq4VJ5Q5qY6wctp0v31YTtfR0swzUQG9cywGaSwRGK2pTGZ2OYgEpnyert0[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/sMIa3FRJlsY44FxGMxPeg_Q2L_ZkLlT70YWQiUkmAx9MNgbroWfKecSbOB0Av8zFRGlJgXgq7aqUO2vlbeRZPVCnTSgvBq4VJ5Q5qY6wctp0v31YTtfR0swzUQG9cywGaSwRGK2pTGZ2OYgEpnyert0[image,width=15,height=14]\n|`starknet_getBlockWithTxs` |image:https://lh7-us.googleusercontent.com/CdJSJ7lBUFFxh9YRlqjytjaYIU377ptXJbaR5y2nPkOPDrzrMglNRFa0tx7D9QqsuKL6kg0H7QhunQ5jqCfneivgsUE0cGXgpFOcGUiEc3gMCnks_nDCHArqROTXCZNQ1jP1AL3pVXkBWAw9fWhP8pY[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/CdJSJ7lBUFFxh9YRlqjytjaYIU377ptXJbaR5y2nPkOPDrzrMglNRFa0tx7D9QqsuKL6kg0H7QhunQ5jqCfneivgsUE0cGXgpFOcGUiEc3gMCnks_nDCHArqROTXCZNQ1jP1AL3pVXkBWAw9fWhP8pY[image,width=15,height=14]\n|`starknet_getBlockWithReceipts` |image:https://lh7-us.googleusercontent.com/jaJgkNwvqZFGCyP5w-CcCbZlblXBnBonzRKxk9Y4WYPe6s205sHC3zGn-Ki_9ZvSNwxO-af1ZmihUGvlPfdGwho2GYcbPWfj93WtbzoRnESV1Oijz6JuB_c95O6YDtdcnnqPkOv0CKGYqMovs9SciRA[image,width=15,height=15]\n|image:https://lh7-us.googleusercontent.com/CdJSJ7lBUFFxh9YRlqjytjaYIU377ptXJbaR5y2nPkOPDrzrMglNRFa0tx7D9QqsuKL6kg0H7QhunQ5jqCfneivgsUE0cGXgpFOcGUiEc3gMCnks_nDCHArqROTXCZNQ1jP1AL3pVXkBWAw9fWhP8pY[image,width=15,height=14]\n|`starknet_getClass` |image:https://lh7-us.googleusercontent.com/b2BV-hTooxxqooQv3OHOPsuLNnUP6ct1cD42QCjcEdTdlEb6AcODsbwV-UkQeNOcD4K4vf8_H9QsbWg8K2Ruofqn5mh6Bhd8N7X2Un_xgE1DUM1AcMUn9ZYtq8sNCvxcU6Dpix6_4qTvdSb-4RgogM4[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/b2BV-hTooxxqooQv3OHOPsuLNnUP6ct1cD42QCjcEdTdlEb6AcODsbwV-UkQeNOcD4K4vf8_H9QsbWg8K2Ruofqn5mh6Bhd8N7X2Un_xgE1DUM1AcMUn9ZYtq8sNCvxcU6Dpix6_4qTvdSb-4RgogM4[image,width=15,height=14]\n|`starknet_getClassAt` |image:https://lh7-us.googleusercontent.com/VhcZNCbRWBMAanu1b8XSIV9pFPYS2ngcfuZs2x-83kWGV9FJJnZ7rfaw_9BV0_OPFsikPRsVnftW0r6m3KGKsGOwGfWksqPmernCaZMmXNaGAX2PeA0tfe_CcLjQLHmutXoTZDpWGKr0vue478bcs9g[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/VhcZNCbRWBMAanu1b8XSIV9pFPYS2ngcfuZs2x-83kWGV9FJJnZ7rfaw_9BV0_OPFsikPRsVnftW0r6m3KGKsGOwGfWksqPmernCaZMmXNaGAX2PeA0tfe_CcLjQLHmutXoTZDpWGKr0vue478bcs9g[image,width=15,height=14]\n|`starknet_getClassHashAt` |image:https://lh7-us.googleusercontent.com/LMl0fT2HvMIWHgrKlQOeyqJHjUtj3Y4Z6OuljCngyOYVd8UPvqiUOiy4cMyWLVdAXlZo0mB3r_H4NKr7jmjA5zxvjZraaZhqMEM9IrGpbQhI-xhqe2MzmneK9zsqNLFNSJYS6lrWTU68vUoLBzEDB8k[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/LMl0fT2HvMIWHgrKlQOeyqJHjUtj3Y4Z6OuljCngyOYVd8UPvqiUOiy4cMyWLVdAXlZo0mB3r_H4NKr7jmjA5zxvjZraaZhqMEM9IrGpbQhI-xhqe2MzmneK9zsqNLFNSJYS6lrWTU68vUoLBzEDB8k[image,width=15,height=14]\n|`starknet_getEvents` |image:https://lh7-us.googleusercontent.com/IGyszI0PQbJdMxcngAs8N9MDo3MjxFHPbFfM5IWmwRbU6isYXZRY7JrtcPXnWSLPqsKweU7f96YcEDHfTSu6leRyyhd3g4rPAmxwArokqrtkUkQraMw3IRi02Uja7aeH45teyrRaj-2VWmqQUl7V3Yw[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/IGyszI0PQbJdMxcngAs8N9MDo3MjxFHPbFfM5IWmwRbU6isYXZRY7JrtcPXnWSLPqsKweU7f96YcEDHfTSu6leRyyhd3g4rPAmxwArokqrtkUkQraMw3IRi02Uja7aeH45teyrRaj-2VWmqQUl7V3Yw[image,width=15,height=14]\n|`starknet_getNonce` |image:https://lh7-us.googleusercontent.com/ru-XjFrOJ00S5N_X3fqbX-sTb9WzrLJux42cX4MSi4fbYIK7g5mRz99MdkvwKoq4aJyxqv-Ytn-SS_HK-c7YVv5sJe6dF7TBuTW28meUeB91Ulmbm693D1GCIAG515y7mSeQuincRv-VDzCafl1FqZk[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/ru-XjFrOJ00S5N_X3fqbX-sTb9WzrLJux42cX4MSi4fbYIK7g5mRz99MdkvwKoq4aJyxqv-Ytn-SS_HK-c7YVv5sJe6dF7TBuTW28meUeB91Ulmbm693D1GCIAG515y7mSeQuincRv-VDzCafl1FqZk[image,width=15,height=14]\n|`starknet_getStateUpdate` |image:https://lh7-us.googleusercontent.com/z2Iinm_IgpvefYJTFfrKxgXBxVZ9PwSxPRdUfTeFCfY_MRewFBMIxCTaz_Jov38VlNA1tEsqIvAgqY_OBlKvNhG6JIaFMli_bxarAXPh8Ro2wu0DBdl9_hafLueUmB3gaFVi_1bY7XqIy3LOGIHgdpY[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/z2Iinm_IgpvefYJTFfrKxgXBxVZ9PwSxPRdUfTeFCfY_MRewFBMIxCTaz_Jov38VlNA1tEsqIvAgqY_OBlKvNhG6JIaFMli_bxarAXPh8Ro2wu0DBdl9_hafLueUmB3gaFVi_1bY7XqIy3LOGIHgdpY[image,width=15,height=14]\n|`starknet_getStorageAt` |image:https://lh7-us.googleusercontent.com/Q0n2aBJM-uIWrG1kosFu2MhQKg4cksWcvDi9KQp5L-utvsMZAud0LqQUdlHEnI7pCsBFLYEtBNmLM9VhqxhWlhAa_24M6RdLX5qex5o34w2jc4ARL55DFBDYIfGBhSUasx_NyAWJft_4HOajJnkWeGA[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/Q0n2aBJM-uIWrG1kosFu2MhQKg4cksWcvDi9KQp5L-utvsMZAud0LqQUdlHEnI7pCsBFLYEtBNmLM9VhqxhWlhAa_24M6RdLX5qex5o34w2jc4ARL55DFBDYIfGBhSUasx_NyAWJft_4HOajJnkWeGA[image,width=15,height=14]\n|`starknet_getTransactionByBlockIdAndIndex` |image:https://lh7-us.googleusercontent.com/2nPt3GGNY9upWAjl55qAweT8bAHwNvgnMzbuV3e_1aM0i3AFGEOjBJeupMC5Ik2ogBXJKipLMyrJ9qceWy6k-b-odz5g30Z1WvyO5zdCPFu5tre3qvoWqh0Ye1METBLvzztPki1eQHZXwr-bn2yrJsQ[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/2nPt3GGNY9upWAjl55qAweT8bAHwNvgnMzbuV3e_1aM0i3AFGEOjBJeupMC5Ik2ogBXJKipLMyrJ9qceWy6k-b-odz5g30Z1WvyO5zdCPFu5tre3qvoWqh0Ye1METBLvzztPki1eQHZXwr-bn2yrJsQ[image,width=15,height=14]\n|`starknet_getTransactionByHash` |image:https://lh7-us.googleusercontent.com/k9qvKyttKSe8_AW4EvmGfCPnQi4R9g514n9uEbsKs5ZMXI7fkrCR5jMOk4KCo7pEn0JyCtJDRRGOuJf-OL5cP9-7P9rU2mN9R6wU90-js5YcDAwyrrZ4TD_i9h-TXkdFt5D40V1hgAwA1czHRgf_YVo[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/k9qvKyttKSe8_AW4EvmGfCPnQi4R9g514n9uEbsKs5ZMXI7fkrCR5jMOk4KCo7pEn0JyCtJDRRGOuJf-OL5cP9-7P9rU2mN9R6wU90-js5YcDAwyrrZ4TD_i9h-TXkdFt5D40V1hgAwA1czHRgf_YVo[image,width=15,height=14]\n|`starknet_getTransactionReceipt` |image:https://lh7-us.googleusercontent.com/031uVAYby7m12Je0ZuWbebnjvKzCK0lII05KItL6cOmZH_xUFz_yGV6E4xvjjt1aDD8y-6skH2mbSkfYEZQx64CzJRpd7G5uSoEAhsG2P3r51HqYXX-G7vafHmEPgD-O4mfp9diQSvEOiieEFPAW0yc[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/031uVAYby7m12Je0ZuWbebnjvKzCK0lII05KItL6cOmZH_xUFz_yGV6E4xvjjt1aDD8y-6skH2mbSkfYEZQx64CzJRpd7G5uSoEAhsG2P3r51HqYXX-G7vafHmEPgD-O4mfp9diQSvEOiieEFPAW0yc[image,width=15,height=14]\n|`starknet_getTransactionStatus` |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|`starknet_simulateTransactions`  |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|`starknet_specVersion` |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|`starknet_syncing`  |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|`starknet_traceBlockTransactions`  |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|`starknet_traceTransaction`  |image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|image:https://lh7-us.googleusercontent.com/w8n4EgH6kPlyU55MMLJYjm2v3bOD_5MfsYJnpcvXqkM4Zsj0Eu2JekM9ZwztTydhqfUW_gtYGvSg2P5NF7Zib5heFonOYRhya18tdGQebkUXCQKxoSgFoicqpdHNgyU9Cf-Iuak1nSibbJWKN6H_Bbg[image,width=15,height=14]\n|===\n\n== Papyrus monitoring API\n\nEndpoints for retrieving monitoring information for the running node are available at the path `monitoring`.\n\nYou can send API requests using the following `curl` command:\n\n[source,bash]\n----\ncurl -X GET https://\u003cnode_monitoring_gateway\u003e/monitoring/\u003cendpoint\u003e\n----\n\nFor example, when the node monitoring gateway is exposed at `localhost:8081`, send a request to view the liveliness endpoint using the following `curl` command:\n\n[source,bash]\n----\ncurl -X GET http://localhost:8081/monitoring/alive\n----\n\n=== Papyrus monitoring API endpoints\n\n[horizontal,labelwidth=\"15\"]\n`alive`::\nLiveliness endpoint. Returns status code `200` if the node is alive.\n`nodeVersion`::\nGets the node version.\n`nodeConfig`::\nGets the current node’s configuration.\n`dbTablesStats`::\nGets statistics for each table in the libmdbx database. For more information, see https://docs.rs/libmdbx/latest/libmdbx/struct.Stat.html[libmdbx::Stat] in the libmdbx documentation.\n`metrics`::\nGets metrics of the node’s activity. For more information, see xref:#collecting-metrics[].\n`peer_id`::\nGets the P2P peer ID of the node (if the network component is inactive returns an empty string).\n\n== Collecting metrics\n\nPapyrus can collect the following types of metrics:\n\n* JSON-RPC metrics\n* synchronization metrics\n* process metrics\n* p2p network metrics\n\nBy default, the node does not collect metrics and the metric path returns the following error code:\n\n[source, bash]\n----\n405 - Method Not Allowed.\n----\n\n*To collect metrics*, set the configuration value `collect_metrics` in the default configuration file to `true`.\n\n== Viewing metrics\n\nPapyrus collects the following types of metrics:\n\n* `rpc_incoming_requests` counter\n* `rpc_failed_requests` counter\n* `rpc_request_latency_seconds` histogram\n* `process` #Are these process metrics?#\n* `papyrus` #Are these sync metrics?#\n\nYou can see information for each metric by entering the following command:\n\n[source,bash]\n----\n\u003cmetric\u003e\\{method=\"\u003cmethod_endpoint_suffix\u003e\", version=\"\u003cver\u003e\"}\n----\n\nWhere:\n\n[horizontal,labelwidth=\"15\"]\n`\u003cmetric\u003e`:: is the JSON-RPC metric.\n`\u003cmethod_endpoint_suffix\u003e`:: is the name of the JSON RPC API method endpoint, not including `starknet_`.\n`\u003cver\u003e`:: is the JSON-RPC API version.\n\nFor example, to get all the incoming requests to the method `starknet_chainId` in JSON-RPC version 0.4, use `method=\"chainId\"` in the following command:\n\n[source,bash]\n----\ncurl -X GET https://localhost:8081/monitoring/metrics/rpc_incoming_requests\\{method=\"chainId\", version=\"V0_4\"}\n----\n\n[TIP]\n====\nTo get the number of requests with an illegal method name, such as those resulting from a typo, like `starknet_chainIddd`, use `illegal_method` for `\u003cmethod_endpoint_suffix\u003e`.\n====\n\n== Deployment\n\nSee a helm chart for deploying the node to a Kubernetes cluster in the https://github.com/starkware-libs/papyrus/blob/main/deployments/helm/README.md[deployments folder].\n\n== Roadmap\n\nSee the https://github.com/starkware-libs/papyrus/issues[open issues] for proposed features and known issues:\n\n* https://github.com/starkware-libs/papyrus/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc[Top Feature Requests] (Add your votes using the 👍 reaction)\n* https://github.com/starkware-libs/papyrus/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc[Top Bugs] (Add your votes using the 👍 reaction)\n* https://github.com/starkware-libs/papyrus/issues?q=is%3Aopen+is%3Aissue+label%3Abug[Newest Bugs]\n\n== Getting help\n\nReach out to the maintainer at any of the following:\n\n* https://github.com/starkware-libs/papyrus/discussions[GitHub Discussions]\n* Contact options listed on https://github.com/starkware-libs[this GitHub profile]\n\n== Help make Papyrus better!\n\nIf you want to say thank you or support the active development of Papyrus:\n\n* Add a https://github.com/starkware-libs/papyrus[GitHub Star] to the project.\n* Tweet about Papyrus.\n* Write interesting articles about the project on link:https://dev.to/[Dev.to], link:https://medium.com/[Medium], or your personal blog.\n\n== Contributing\n\nThanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make benefit everybody else and are greatly appreciated.\n\nPlease read link:https://github.com/starkware-libs/papyrus/blob/main/docs/CONTRIBUTING.md[our contribution guidelines], and thank you for being involved!\n\n== Authors and contributors\n\nFor a full list of all authors and contributors, see link:https://github.com/starkware-libs/papyrus/contributors[the contributors page].\n\n== Security\n\nPapyrus follows good practices of security, but 100% security cannot be assured. Papyrus is provided \"as is\" without any warranty. Use at your own risk.\n\nFor more information and to report security issues, please refer to our link:https://github.com/starkware-libs/papyrus/blob/main/docs/SECURITY.md[security documentation].\n\n== License\n\nThis project is licensed under the Apache 2.0 license.\n\nFor more information, see link:https://github.com/starkware-libs/papyrus/blob/main/LICENSE[LICENSE].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarkware-libs%2Fpapyrus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarkware-libs%2Fpapyrus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarkware-libs%2Fpapyrus/lists"}