bulk-keychain 0.1.5

A simple high perf signing lib for BULK txns
Documentation

bulk-keychain

A simple high perf signing lib for BULK txns.

This crate provides the core functionality for signing transactions on BULK. Designed for low-latency, high-throughput trading systems.

Features

  • Fast signing: Ed25519 signatures with SIMD optimizations
  • Batch signing: Sign multiple transactions in parallel using Rayon
  • Zero-copy serialization: Minimal allocations in hot paths
  • Type-safe: Rust's type system prevents malformed transactions

Quick Start

use bulk_keychain::{Keypair, Signer, Order, TimeInForce};

// Generate a new keypair
let keypair = Keypair::generate();

// Create an order
let order = Order::limit("BTC-USD", true, 100000.0, 0.1, TimeInForce::Gtc);

// Sign the transaction
let mut signer = Signer::new(keypair);
let signed_tx = signer.sign(order.into(), None).unwrap();

Batch Signing

For high-frequency trading, use batch signing to maximize throughput:

use bulk_keychain::{Keypair, Signer, Order, TimeInForce};

let keypair = Keypair::generate();
let mut signer = Signer::new(keypair);

// Create many independent orders
let orders: Vec<_> = (0..1000)
    .map(|i| Order::limit("BTC-USD", i % 2 == 0, 100000.0 + i as f64, 0.1, TimeInForce::Gtc).into())
    .collect();

// Sign all at once - automatically uses parallel signing for large batches
let signed_txs = signer.sign_all(orders, None).unwrap();