Docs
Docs
Home
Getting Started
Agent Tooling
CLI
Supported Chains
Acala
Aptos
Arbitrum
Arc
Asset Hub
Astar
Avalanche
Base
Berachain
Bifrost
Binance Smart Chain
Bittensor
Blast
Boba Network
Bridge Hub
Celo
Centrifuge
Chiliz
Cronos
Enjin
Ethereum
Etherlink
Flow EVM Gateway
Gnosis
Hydration
Hyperliquid
Immutable
Ink
IoTeX
Kusama
Linea
LISK
Manta Atlantic
Manta Pacific
Mantle
MegaETH
Monad
Movement
Neuroweb
opBNB
Optimism
Plasma
Polkadot
Polygon
Pulsechain
Robinhood
Ronin
Scroll
Sonic
Starknet
Taiko
Tempo
Sui
TRON
Unichain
Viction
World Chain
XDC Network
XX Network
Zetachain
zkSync Era
Zora
Supported ChainsPlasmaJSON-RPC APITransaction Methods

eth_signTransaction - Plasma RPC Method

Sign a transaction without broadcasting it on Plasma. Public shared RPC endpoints commonly return deprecation, unsupported-method, or account-management errors because they do not keep unlocked signers.

Plasma RPC endpoint: endpoint URLs, plans and pricing.

Signs a transaction with the private key of the specified account on Plasma without submitting it to the network.

Why Plasma? Build on an EVM Layer 1 for stablecoin payments with PlasmaBFT consensus and Reth execution with 1 second blocks, XPL gas, full EVM JSON-RPC, and debug plus txpool on Dwellir.

Security Warning: Public Dwellir endpoints do not keep unlocked signers. On shared infrastructure, eth_signTransaction commonly returns a deprecation, unsupported-method, or account-management error instead of a signed payload. For production use, sign transactions client-side using libraries like ethers.js or web3.py, then broadcast with eth_sendRawTransaction.

When to Use This Method

eth_signTransaction is relevant for payment app developers, wallet teams, and teams shipping Solidity contracts for dollar transfers in limited scenarios:

  • Understanding the Signing Flow - Learn how transaction signing works before implementing client-side signing
  • Local Development - Sign transactions on a local dev node (Hardhat, Anvil, Ganache) where accounts are unlocked
  • Offline Signing Workflows - Generate signed transaction payloads for later broadcast

Best Practices

  • Sign transactions client-side using wallet libraries for production applications
  • Never expose private keys to node endpoints; use eth_sendRawTransaction with pre-signed transactions
  • Use eth_signTransaction only in test environments or for air-gapped signing validation
JSON-RPC request
{
  "jsonrpc": "2.0",
  "method": "eth_signTransaction",
  "params": [
    {
      "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
      "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
      "gas": "0x76c0",
      "gasPrice": "0x9184e72a000",
      "value": "0x9184e72a",
      "data": "0x",
      "nonce": "0x0"
    }
  ],
  "id": 1
}

Code Examples

Common Use Cases

1. Offline Transaction Signing

Sign transactions on an air-gapped machine for later broadcast:

JavaScript
import { Wallet } from 'ethers';

async function createSignedTransaction(privateKey, to, value, { chainId, nonce, gasLimit }) {
  const wallet = new Wallet(privateKey);
  const tx = {
    to,
    value,
    gasLimit,
    nonce,
    chainId,
  };

  const signedTx = await wallet.signTransaction(tx);
  // Store signedTx and broadcast from an online machine
  return signedTx;
}

2. Batch Transaction Preparation

Pre-sign multiple transactions for sequential submission on Plasma:

JavaScript
async function prepareBatch(wallet, transactions) {
  const signed = [];

  for (let i = 0; i < transactions.length; i++) {
    const tx = {
      ...transactions[i],
      nonce: baseNonce + i
    };
    signed.push(await wallet.signTransaction(tx));
  }

  return signed; // Submit via eth_sendRawTransaction in order
}

Error Handling

Common errors and solutions:

Error CodeDescriptionSolution
-32000Deprecated, unavailable, or account not unlockedUse client-side signing instead of node-side signing
-32601Method not foundMethod disabled on this node - use client-side signing
-32602Invalid paramsVerify transaction fields (from, to, gas, etc.)
-32603Internal errorCheck node logs for signing failures

Related Methods

  • eth_sendRawTransaction - Broadcast a signed transaction
  • eth_sendTransaction - Sign and send in one step (requires unlocked account)
  • eth_accounts - List accounts available for signing

eth_feeHistory

Get historical gas fee data on Plasma including base fees and priority fee percentiles. Essential for gas price prediction, fee estimation UIs, and network congestion monitoring.

eth_sendTransaction

Send a transaction from an unlocked account on Plasma. Requires the node to hold the sender's private key - intended for development and testing only.

On this page

When to Use This MethodBest PracticesCode ExamplesCommon Use Cases1. Offline Transaction Signing2. Batch Transaction PreparationError HandlingRelated Methods