Offline Signer
The key never leaves your infrastructure
An MIT-licensed package that signs EVM, UTXO, Tron, XRP, Kaspa and Solana transactions locally. No API call, no API key, no network round trip — the private key stays in your process, because it never has a reason to leave it.
npm i @cryptoapis-io/offline-signer
import { evmSignFromDetails } from "@cryptoapis-io/offline-signer/evm";
// data.item from POST /prepare-transactions/evm/ethereum/mainnet/native-coins
const { signedTransactionHex } = await evmSignFromDetails({
blockchain: "ethereum",
network: "mainnet",
privateKey: process.env.PRIVATE_KEY, // never leaves this process
toAddress: item.recipient,
value: item.value,
nonce: item.nonce,
gasLimit: item.gasLimit,
});
// hand signedTransactionHex to POST /broadcast-transactions
Where it sits in the flow
Three steps, and only the middle one touches a key. Prepare and broadcast are ordinary REST calls; signing happens in your process, offline.
- POST /prepare-transactions/… returns an unsigned transaction
- Sign it here, offline, with your key — no network call
- POST /broadcast-transactions/… puts it on chain