Signing Raw Transactions
Last updated
Last updated
The closest real world example of a raw transaction — probably a bank cheque
Some ways we can utilize raw transactions include signing a transaction offline on a secure machine and then broadcasting it separately or to send a transaction at a later point of time.
You will need installed and a valid .
In a new folder, initiate a new Node.js project with the command npm init -y
to accept all default project parameters.
A package.json
file will be created for you, which contains all your packages and project information.
We can do so using the command npm i ethers
from a terminal within this project, which will add ethers
as a dependency.
We'll then create a new file named transaction.js
where we'll write the rest of the code in JavaScript and import ethers
at the top of the file.
A transactions is made up of several parameters that have to be defined, for this example we'll be making a simple M transfer.
to
the address
to send M to
value
the amount of M to send
gasLimit
maxPriorityFeePerGas
maxFeePerGas
nonce
type
set to 0x2
, to denote EIP-1559 type transactions
chainId
After detailing the contents of the transaction, we'll need to sign it — using the wallet's private key we created in Step 3 to prove we are allowed to spend funds in the wallet address.
With the transaction signed, we have just one more step to serialize, or simply converting our transaction into a hexadecimal format.
You can run this code using the command node transaction.js
We'll need to integrate a helpful JavaScript library known as that will help with interacting with the Ethereum blockchain.
One of the useful classes that provides is a Wallet
, which represents a regular Ethereum address that you can use to store and send M.
We can initiate a new Wallet
by specifying a private key which we can or grab one from an existing wallet like
If you are following this article on a , feel free to get some to fund your address.
the maximum to consume in this transaction, set to 21000
for basic M transfers
the tip paid to miners, introduced in
the maximum price paid per unit of gas, introduced in
the sent from the address
the to send the transaction, for example 3
for Ropsten
The sample code to send 1 M
to address 0xEeee7341f206302f2216e39D715B96D8C6901A1C
on the will be as follows.
With the signed raw transaction, we can now pass it to the "" endpoint to be broadcasted to the Ethereum network.
A successfully broadcasted transaction will return a transaction hash, which you can use the "" endpoint or look it up on MemeCoreScan!
The full sample code for this tutorial is on , feel free to fork and extend the functionality of it !