clear-signing 0.1.0

ERC-7730 v2 clear signing library: decodes and formats Ethereum calldata and EIP-712 typed data for human-readable display.
Documentation

clear-signing

ERC-7730 v2 clear-signing library for Rust. Decodes and formats Ethereum contract calldata and EIP-712 typed data into human-readable display models for wallets and signers.

Install

cargo add clear-signing

Optional features:

  • uniffi — UniFFI export layer for cross-language bindings (Swift, Kotlin)
  • github-registry — async HTTP descriptor source backed by a GitHub-hosted registry

Usage

use clear_signing::{
    format_calldata, resolve_descriptors_for_tx, EmptyDataProvider, TransactionContext,
};

let tx = TransactionContext {
    chain_id: 1,
    to: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    calldata: &calldata_bytes,
    value: None,
    from: None,
    implementation_address: None,
};

let provider = EmptyDataProvider;
let descriptors = resolve_descriptors_for_tx(&tx, &registry_source, &provider).await?;
let outcome = format_calldata(&descriptors, &tx, &provider).await?;

Full API documentation: https://docs.rs/clear-signing.

What's in the GitHub repo

This crate is the Rust core. The main repository also ships:

  • A Swift Package + XCFramework for iOS
  • An Android Kotlin AAR (UniFFI bindings)
  • A SwiftUI sample wallet demonstrating WalletConnect + clear signing
  • Integration guides

Spec

Implements ERC-7730 v2.

License

Dual-licensed under MIT or Apache-2.0, at your option.