curl --request POST \
--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "eth_signTransaction",
"params": {
"transaction": {
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"value": "0x2386F26FC10000",
"chain_id": 11155111,
"data": "0x",
"gas_limit": 50000,
"nonce": 0,
"max_fee_per_gas": 1000308,
"max_priority_fee_per_gas": "1000000"
}
}
}'
{
"method": "eth_signTransaction",
"data": {
"signed_transaction": "0x02f870830138de80830f4240830f437480940b81418147df37155d643b5cb65ba6c8cb7aba76872000000000000480c080a05c11a2166ec56189d993dec477477d962ce0d4c466ab7ed8982110621ec87a57a003c796590c0c62eac30acd412f2aa0e8ad740c4ded86fb64d3326ee4c0ea804c",
"encoding": "rlp"
}
}
Ethereum
eth_signTransaction
Sign a transaction using the eth_signTransaction method.
POST
/
v1
/
wallets
/
{wallet_id}
/
rpc
curl --request POST \
--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "eth_signTransaction",
"params": {
"transaction": {
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"value": "0x2386F26FC10000",
"chain_id": 11155111,
"data": "0x",
"gas_limit": 50000,
"nonce": 0,
"max_fee_per_gas": 1000308,
"max_priority_fee_per_gas": "1000000"
}
}
}'
{
"method": "eth_signTransaction",
"data": {
"signed_transaction": "0x02f870830138de80830f4240830f437480940b81418147df37155d643b5cb65ba6c8cb7aba76872000000000000480c080a05c11a2166ec56189d993dec477477d962ce0d4c466ab7ed8982110621ec87a57a003c796590c0c62eac30acd412f2aa0e8ad740c4ded86fb64d3326ee4c0ea804c",
"encoding": "rlp"
}
}
SDK methods
Learn more about signing transactions using our SDKs here.curl --request POST \
--url https://api.privy.io/v1/wallets/{wallet_id}/rpc \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '{
"method": "eth_signTransaction",
"params": {
"transaction": {
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"value": "0x2386F26FC10000",
"chain_id": 11155111,
"data": "0x",
"gas_limit": 50000,
"nonce": 0,
"max_fee_per_gas": 1000308,
"max_priority_fee_per_gas": "1000000"
}
}
}'
{
"method": "eth_signTransaction",
"data": {
"signed_transaction": "0x02f870830138de80830f4240830f437480940b81418147df37155d643b5cb65ba6c8cb7aba76872000000000000480c080a05c11a2166ec56189d993dec477477d962ce0d4c466ab7ed8982110621ec87a57a003c796590c0c62eac30acd412f2aa0e8ad740c4ded86fb64d3326ee4c0ea804c",
"encoding": "rlp"
}
}
Headers
ID of your Privy app.
Request authorization signature. If multiple signatures are required, they should be comma
separated.
Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the
request must be processed.
Path Parameters
ID of the wallet to get.
Body
Available options:
eth_signTransactionHide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Available options:
0, 1, 2, 4, 118.Use 118 for Tempo Transactions, recipes here.Hide Standard EVM transaction fields
Hide Standard EVM transaction fields
Applies to standard EVM transactions. For Tempo transactions, use
calls[].to.Applies to standard EVM transactions. For Tempo transactions, use
calls[].data.Applies to standard EVM transactions. For Tempo transactions, use
calls[].value.Applies to standard EVM transactions.
Show Tempo transaction fields
Show Tempo transaction fields
These fields only apply when
params.transaction.type is 118.The token address used to pay Tempo transaction fees. Defaults to the native token if
omitted.
The Tempo 2D nonce key.
Unix timestamp in seconds after which Tempo will reject the transaction.
Unix timestamp in seconds before which Tempo will reject the transaction.
Response
Available options:
eth_signTransactionWas this page helpful?
⌘I

