{"id":13803606,"url":"https://github.com/xJonathanLEI/starknet-rs","last_synced_at":"2025-05-13T16:32:12.993Z","repository":{"id":37011402,"uuid":"434233934","full_name":"xJonathanLEI/starknet-rs","owner":"xJonathanLEI","description":"Complete Starknet library in Rust™","archived":false,"fork":false,"pushed_at":"2025-05-10T18:12:13.000Z","size":4415,"stargazers_count":300,"open_issues_count":26,"forks_count":118,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-10T18:30:56.644Z","etag":null,"topics":["ethereum","rust","starknet"],"latest_commit_sha":null,"homepage":"https://starknet.rs","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/xJonathanLEI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-02T13:36:02.000Z","updated_at":"2025-04-26T01:04:00.000Z","dependencies_parsed_at":"2023-11-03T07:45:17.294Z","dependency_job_id":"825d65ce-2c0d-4907-be2e-a2a91607c733","html_url":"https://github.com/xJonathanLEI/starknet-rs","commit_stats":{"total_commits":529,"total_committers":27,"mean_commits":19.59259259259259,"dds":"0.14555765595463133","last_synced_commit":"8755b68675f103ee011f1d964fcec55f1902fa09"},"previous_names":[],"tags_count":151,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xJonathanLEI%2Fstarknet-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xJonathanLEI%2Fstarknet-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xJonathanLEI%2Fstarknet-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xJonathanLEI%2Fstarknet-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xJonathanLEI","download_url":"https://codeload.github.com/xJonathanLEI/starknet-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253465452,"owners_count":21913026,"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":["ethereum","rust","starknet"],"created_at":"2024-08-04T01:00:36.134Z","updated_at":"2025-05-13T16:32:07.955Z","avatar_url":"https://github.com/xJonathanLEI.png","language":"Rust","funding_links":[],"categories":["Additional developer resources","Layer 2","Web3 and ZKP Framework"],"sub_categories":["Starknet"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/xJonathanLEI/starknet-rs/blob/master/images/starknet-rs-logo.png?raw=true\" alt=\"Logo\"/\u003e\n  \u003ch1 align=\"center\"\u003estarknet-rs\u003c/h1\u003e\n\u003c/p\u003e\n\n**Complete Starknet library in Rust[™](https://www.reddit.com/r/rust/comments/12e7tdb/rust_trademark_policy_feedback_form/)**\n\n![starknet-version-v0.13.0](https://img.shields.io/badge/Starknet_Version-v0.13.0-2ea44f?logo=ethereum)\n[![jsonrpc-spec-v0.7.1](https://img.shields.io/badge/JSON--RPC-v0.7.1-2ea44f?logo=ethereum)](https://github.com/starkware-libs/starknet-specs/tree/v0.7.1)\n[![linting-badge](https://github.com/xJonathanLEI/starknet-rs/actions/workflows/lint.yaml/badge.svg?branch=master)](https://github.com/xJonathanLEI/starknet-rs/actions/workflows/lint.yaml)\n[![crates-badge](https://img.shields.io/crates/v/starknet.svg)](https://crates.io/crates/starknet)\n\n\u003e _Note that `starknet-rs` is still experimental. Breaking changes will be made before the first stable release. The library is also NOT audited or reviewed for security at the moment. Use at your own risk._\n\n\u003e _The underlying cryptography library [`starknet-crypto`](./starknet-crypto) does NOT provide constant-time guarantees._\n\n## Adding starknet-rs to your project\n\nTo use the crate from [crates.io](https://crates.io/crates/starknet), add the following to your `Cargo.toml` file:\n\n```toml\n[dependencies]\nstarknet = \"0.11.0\"\n```\n\nNote that the [crates.io version](https://crates.io/crates/starknet) might be outdated. You may want to use the library directly from GitHub for all the latest features and fixes:\n\n```toml\n[dependencies]\nstarknet = { git = \"https://github.com/xJonathanLEI/starknet-rs\" }\n```\n\n## Features\n\n- [x] Sequencer gateway / feeder gateway client\n- [x] Full node JSON-RPC API client\n- [x] Smart contract deployment\n- [x] Signer for using [IAccount](https://github.com/OpenZeppelin/cairo-contracts/blob/release-v0.6.1/src/openzeppelin/account/IAccount.cairo) account contracts\n- [ ] Strongly-typed smart contract binding code generation from ABI\n- [x] Ledger hardware wallet support\n\n## Crates\n\nThis workspace contains the following crates:\n\n- `starknet`: Re-export of other sub-crates (recommended)\n- `starknet-core`: Core data structures for interacting with Starknet\n- `starknet-providers`: Abstraction and implementation of clients for interacting with Starknet nodes and sequencers\n- `starknet-contract`: Types for deploying and interacting with Starknet smart contracts\n- `starknet-crypto`: **Low-level** cryptography utilities for Starknet\n- `starknet-signers`: Starknet signer implementations\n- `starknet-accounts`: Types for handling Starknet account abstraction\n- `starknet-curve`: Starknet curve operations\n- `starknet-macros`: Useful macros for using the `starknet` crates\n- `starknet-core-derive`: Derive macros for traits in `starknet-core`\n\n## WebAssembly\n\n`starknet-rs` can be used as a WebAssembly module. Check out [this example](./examples/starknet-wasm/).\n\n## Using `starknet-rs` from C++\n\n`starknet-rs` can be used as a dynamic or static library from C++. Check out [this example](./examples/starknet-cxx/).\n\n## Performance\n\nBenchmark results for native and WebAssembly targets are available for these crates:\n\n- [starknet-core](./starknet-core/)\n- [starknet-crypto](./starknet-crypto/)\n\nFor instructions on running the benchmark yourself, check [here](./BENCHMARK.md).\n\n## Example\n\nExamples can be found in the [examples folder](./examples):\n\n1. [Get the latest block from `alpha-sepolia` testnet](./examples/get_block.rs)\n\n2. [Deploy contract to `alpha-sepolia` testnet via UDC](./examples/deploy_contract.rs)\n\n3. [Mint yourself 1,000 TST tokens on `alpha-sepolia`](./examples/mint_tokens.rs)\n\n   Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.\n\n4. [Declare Cairo 1 contract on `alpha-sepolia` testnet](./examples/declare_cairo1_contract.rs)\n\n   Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.\n\n5. [Declare legacy Cairo 0 contract on `alpha-sepolia` testnet](./examples/declare_cairo0_contract.rs)\n\n   Make sure your account has some L2 Sepolia ETH to pay for the transaction fee.\n\n6. [Query the latest block number with JSON-RPC](./examples/jsonrpc.rs)\n\n7. [Encoding and decoding Cairo types](./examples/serde.rs)\n\n8. [Batched JSON-RPC requests](./examples/batch.rs)\n\n9. [Call a contract view function](./examples/erc20_balance.rs)\n\n10. [Deploy an Argent X account to a pre-funded address](./examples/deploy_argent_account.rs)\n\n11. [Inspect public key with Ledger](./examples/ledger_public_key.rs)\n\n12. [Deploy an OpenZeppelin account with Ledger](./examples/deploy_account_with_ledger.rs)\n\n13. [Transfer ERC20 tokens with Ledger](./examples/transfer_with_ledger.rs)\n\n14. [Parsing a JSON-RPC request on the server side](./examples/parse_jsonrpc_request.rs)\n\n15. [Inspecting a erased provider-specific error type](./examples/downcast_provider_error.rs)\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](./LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](./LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FxJonathanLEI%2Fstarknet-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FxJonathanLEI%2Fstarknet-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FxJonathanLEI%2Fstarknet-rs/lists"}