Subxt is a library for interacting with chains in the Polkadot network. It can:
Take a look at the single-file examples folder or the project based examples folder for various smaller or
larger subxt usage examples, or read the docs to learn more.
The "hello world" example of Subxt is submitting a transaction. This is what it looks like:
use subxt::{Error, OnlineClient, PolkadotConfig};
use subxt_signer::sr25519::dev;
// Generate an interface that we can use from the node's metadata.
#[subxt::subxt(runtime_metadata_path = "/path/to/polkadot_rc_metadata.scale")]
mod polkadot {}
#[tokio::main]
async fn main() -> Result<(), Error> {
// Create a new API client, configured to talk to Polkadot nodes.
let api = OnlineClient::<PolkadotConfig>::new().await?;
// Almost all actions are performed at an explicit block. Here we use
// the current block at the time of running this.
let at_block = api.at_current_block().await?;
// Build a balance transfer extrinsic.
let dest = dev::bob().public_key().into();
let balance_transfer_tx = polkadot::transactions()
.balances()
.transfer_allow_death(dest, 10_000);
// Submit the balance transfer extrinsic from Alice, and wait for it
// to be successful and in a finalized block. We get back the extrinsic
// events if all is well.
let from = dev::alice();
let events = at_block
.transactions()
.sign_and_submit_then_watch_default(&balance_transfer_tx, &from)
.await?
.wait_for_finalized_success()
.await?;
// (Optional) we can look for a specific event to learn more about
// the submission.
if let Some(event) = events.find_first::<polkadot::balances::events::Transfer>() {
println!("Balance transfer success: {event:?}");
}
Ok(())
}
Please add your project to this list via a PR.
subxt for allowing developers to conduct End-to-End testing of their contracts.If you're working in TypeScript / JavaScript, polkadot-api is an excellent and actively developed alternative.
The entire code within this repository is dual licensed under the GPL-3.0 or Apache-2.0 licenses. See the LICENSE file for more details.
Please contact us if you have questions about the licensing of our products.
(top 30 of 101)
Rust
99.9%
Subxt is a library for interacting with chains in the Polkadot network. It can:
Take a look at the single-file examples folder or the project based examples folder for various smaller or
larger subxt usage examples, or read the docs to learn more.
The "hello world" example of Subxt is submitting a transaction. This is what it looks like:
use subxt::{Error, OnlineClient, PolkadotConfig};
use subxt_signer::sr25519::dev;
// Generate an interface that we can use from the node's metadata.
#[subxt::subxt(runtime_metadata_path = "/path/to/polkadot_rc_metadata.scale")]
mod polkadot {}
#[tokio::main]
async fn main() -> Result<(), Error> {
// Create a new API client, configured to talk to Polkadot nodes.
let api = OnlineClient::<PolkadotConfig>::new().await?;
// Almost all actions are performed at an explicit block. Here we use
// the current block at the time of running this.
let at_block = api.at_current_block().await?;
// Build a balance transfer extrinsic.
let dest = dev::bob().public_key().into();
let balance_transfer_tx = polkadot::transactions()
.balances()
.transfer_allow_death(dest, 10_000);
// Submit the balance transfer extrinsic from Alice, and wait for it
// to be successful and in a finalized block. We get back the extrinsic
// events if all is well.
let from = dev::alice();
let events = at_block
.transactions()
.sign_and_submit_then_watch_default(&balance_transfer_tx, &from)
.await?
.wait_for_finalized_success()
.await?;
// (Optional) we can look for a specific event to learn more about
// the submission.
if let Some(event) = events.find_first::<polkadot::balances::events::Transfer>() {
println!("Balance transfer success: {event:?}");
}
Ok(())
}
Please add your project to this list via a PR.
subxt for allowing developers to conduct End-to-End testing of their contracts.If you're working in TypeScript / JavaScript, polkadot-api is an excellent and actively developed alternative.
The entire code within this repository is dual licensed under the GPL-3.0 or Apache-2.0 licenses. See the LICENSE file for more details.
Please contact us if you have questions about the licensing of our products.
(top 30 of 101)
Rust
99.9%