SDKs · Docs · Getting Started

Build on the fabric.

Pre-compiled libraries, proto files, and copy-paste samples for building confidential apps on the IronWeave ledger.

2
SDK libraries
7
Lang bindings
8
Platforms
0-setup
HTTP / gRPC
Downloads

Stable links for every build.

Every release is published from CI to a public mirror. The buttons always resolve to the newest build, and the link you copy is permanent — pinned to a version, content-addressed, and shipped with SHA-256 checksums.

iwcrypto v0.3.0

confidential-value primitives

Pedersen commitments, Bulletproof range proofs, Schnorr equality proofs, Ed25519 signing, ECDH encryption — with transcript-bound transfers.

Native libraries

Packages & bindings

NuGet · IronWeave.Crypto CC#Go JavaPythonSwiftDart crates.io · soon

iwblobs v0.3.0

encrypted blob streaming

Chunked AES-256-GCM streaming for large payloads, multi-party key sharing, and signed protobuf envelopes — anchored on-chain. Builds on iwcrypto.

Native libraries

Packages & bindings

NuGet · IronWeave.Blobs CC#Dart more langs · soon
◆ iwcert CLI — turn an Ed25519 identity into X.509 / mTLS certs · dotnet add package IronWeave.Crypto · every artifact ships with SHA-256 checksums.
The libraries

Two SDKs. One confidential ledger.

Thin building blocks you link straight into your app — the same primitives the fabric uses to keep balances and payloads private.

iwcrypto — hide numbers in plain sight

Pedersen commitments Range proofs Equality proofs Fiat–Shamir transcripts
  • Homomorphic commitments. Add two hidden balances and the result still verifies — no value ever revealed.
  • Bulletproofs. ~1,350-byte range proofs with no trusted setup keep values in [0, 2⁶⁴).
  • 64-byte equality proofs. Prove two commitments hold the same value after re-randomizing.
  • Replay-proof by construction. Every proof is glued to op, role, token & account context.

iwblobs — big encrypted payloads, on-chain trust

Chunked streaming AES-256-GCM On-chain anchor Multi-party keys
  • Anchor, don't bloat. Store the bytes anywhere; commit only the integrity hash to the ledger.
  • Streaming API. Encrypt and upload arbitrarily large files in chunks without holding them in memory.
  • Per-participant keys. Distribute decryption keys through the transaction's participant list.
  • Verify on read. Tampering is detected against the on-chain anchor before you trust a byte.
Crypto concepts

How the numbers stay hidden.

Every confidential operation on IronWeave is built from three primitives plus a binding trick. You don't have to implement them — iwcrypto does — but here's what's happening under the hood.

Pedersen commitments 32 bytes

Combine a secret value with a random blinding factor over two public curve points. The result looks like gibberish, yet it's hiding (reveals nothing), binding (you can't change your mind), and additive — so hidden balances can be summed without ever being seen.

C = value·G + blinding·H C₁ + C₂ == commit(v₁ + v₂) ← add without revealing
HidingBindingHomomorphic

Range proofs ~1,350 bytes · Bulletproofs

Prove a committed value lies in [0, 2⁶⁴) without revealing it. Without this, an attacker could spend a negative amount — which wraps into a huge positive on the curve. Bulletproofs need no trusted setup.

# prove each bit ∈ {0,1} and that # the bits reconstruct the committed value 0 ≤ value < 2⁶⁴
No trusted setupCompact

Equality proofs 64 bytes · Schnorr

Prove two commitments hide the same value even after re-randomizing the blinding (for privacy). The value terms cancel in the difference — what's left is a Schnorr proof over the blinding delta.

C_old − C_new = (Δblinding)·H # value terms cancel; prove you know Δblinding
Re-randomize safely

Transcript binding Fiat–Shamir

Every proof's challenge is hashed together with five context fields, cryptographically gluing the proof to one specific operation. Replay it anywhere else — different op, role, token, or account — and it simply fails to verify.

e = Hash(…, op_uuid, role, prev_op_uuid, token_addr, account_addr)
Replay-proofDefense in depth
OperationEquality proofsRange proofsBalance check
Transfer33Homomorphic
Mint11Public amount
Burn11Public amount
Reset10
Rerandomize10
Assertion02

Every operation composes from the same building blocks — the simplest use one proof; a transfer uses six plus a homomorphic balance check.

Read the full crypto reference → Curves · commitments · proofs · signing · encryption · the operations
Weave core

Talk to a node in four calls.

The core API is four RPCs, available as gRPC or plain HTTP/JSON. No client library required to get started — just curl.

1

SubmitTransaction

Sign the serialized bytes with Ed25519 and submit. Consensus writes a block to every participant's chain.

2

GetChainHead

Fetch the latest block on any chain by its public-key address — ID only, or the full block.

3

ReadBlock

Look up any block by hash or transaction ID and walk history via back-references.

4

Bootstrap

Discover public API endpoints and supported protocol versions for peer connection.

# read a chain's head over plain HTTP/JSON
curl -k -X POST \
  https://api.testnet.ironweave.io:21042/ironweave/api/core/chain/head/get \
  -H "Content-Type: application/json" \
  -d '{
    "chainAddress": {
      "addressType": "ADDRESS_TYPE_ED25519",
      "value": "<base64 public key>"
    },
    "returnBlock": true
  }'
Getting started

Five samples. Three languages. One afternoon.

The getting-started repo teaches the API in five small, self-contained steps — the same concepts, in the same order, in every language.

🦀 Rust samples 1–5 🎯 C# samples 1–5 🐍 Python samples 1–4 ↗ github.com/ironweave/getting-started
01
1-keypair
Generate your Ed25519 identity. Run this first.
02
2-hello
Submit your first transaction and read the block.
03
3-message
Send a message to one or more recipients.
04
4-tokens
Mint a token and transfer a private amount.
05
5-blobs
Attach a large encrypted file, anchored on-chain.