eth_sendRawTransaction
curl --request POST \
--url https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": [
"0x"
]
}
'import requests
url = "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": ["0x"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'eth_sendRawTransaction', params: ['0x']})
};
fetch('https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'eth_sendRawTransaction',
'params' => [
'0x'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Monad node API
eth_sendRawTransaction | Monad
Monad API method that submits a pre-signed transaction for broadcast to the network. eth_sendRawTransaction on Monad via Chainstack.
POST
/
eth_sendRawTransaction
curl --request POST \
--url https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": [
"0x"
]
}
'import requests
url = "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": ["0x"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'eth_sendRawTransaction', params: ['0x']})
};
fetch('https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'eth_sendRawTransaction',
'params' => [
'0x'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://monad-testnet.core.chainstack.com/9c5b265f20b3ea5df4f54f70eb74b800/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_sendRawTransaction\",\n \"params\": [\n \"0x\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Monad API method that submits a pre-signed transaction for broadcast to the network. This method is used to send signed transactions, which can transfer value or interact with smart contracts.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
This method creates a transaction that alters the state of the blockchain. It requires MON tokens to pay for gas fees.
Monad-specific behavior:
- May not immediately reject transactions with a nonce gap or insufficient gas balance. Due to asynchronous execution, the RPC server may not have the latest account state, so these transactions are initially allowed as they may become valid during block creation.
- Does not accept EIP-4844 (blob) transaction type, as EIP-4844 is not supported on Monad.
Parameters
data— the signed transaction data (typically signed with a library like ethers.js or web3.py).
Response
result— the 32-byte transaction hash, or the zero hash if the transaction is not yet available.
eth_sendRawTransaction code examples
const { ethers } = require("ethers");
const provider = new ethers.JsonRpcProvider("CHAINSTACK_NODE_URL");
const wallet = new ethers.Wallet("PRIVATE_KEY", provider);
async function sendTransaction() {
const tx = await wallet.sendTransaction({
to: "0x...", // Recipient address
value: ethers.parseEther("0.01")
});
console.log(`Transaction hash: ${tx.hash}`);
await tx.wait();
console.log("Transaction confirmed");
}
sendTransaction();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
# Build and sign transaction
tx = {
'nonce': web3.eth.get_transaction_count('YOUR_ADDRESS'),
'to': '0x...', # Recipient address
'value': web3.to_wei(0.01, 'ether'),
'gas': 21000,
'gasPrice': web3.eth.gas_price,
'chainId': 143 # Monad mainnet
}
signed_tx = web3.eth.account.sign_transaction(tx, 'PRIVATE_KEY')
tx_hash = web3.eth.send_raw_transaction(signed_tx.raw_transaction)
print(f'Transaction hash: {tx_hash.hex()}')
Use case
A practical use case foreth_sendRawTransaction is sending MON transfers or interacting with smart contracts after signing transactions offline or in a secure environment.Last modified on June 22, 2026
Was this page helpful?