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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"sponsor": true,
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
{
"method": "wallet_sendCalls",
"data": {
"transaction_id": "b4966a89-8983-4b1b-a93a-b104799527f5",
"caip2": "eip155:84532"
}
}
Ethereum
wallet_sendCalls
Send a batch of calls using the wallet_sendCalls 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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"sponsor": true,
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
{
"method": "wallet_sendCalls",
"data": {
"transaction_id": "b4966a89-8983-4b1b-a93a-b104799527f5",
"caip2": "eip155:84532"
}
}
SDK methods
Learn more about sending transactions using our SDKs here.Idempotency on errors: On 4xx or 5xx, Privy caches the response and replays it for the same
key. Generate a new key to retry after a server error. Policy violations are an exception and
allow same-key retries.
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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
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": "wallet_sendCalls",
"caip2": "eip155:84532",
"chain_type": "ethereum",
"sponsor": true,
"params": {
"calls": [
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000001"
},
{
"to": "0xB8644175b78da1971C7278Ead8ff70Ce65E0981b",
"value": "0x00000002"
}
]
}
}'
{
"method": "wallet_sendCalls",
"data": {
"transaction_id": "b4966a89-8983-4b1b-a93a-b104799527f5",
"caip2": "eip155:84532"
}
}
The wallet RPC endpoint is a synchronous endpoint, and a successful response indicates that the
transaction has been broadcasted to the network. Transactions may get broadcasted but still fail
to be confirmed by the network. The endpoint does not wait for confirmation or retry if the
transaction fails to be confirmed. To handle these scenarios, see our guide on speeding up
transactions.
Headers
string
required
ID of your Privy app.
string
Request authorization signature. If multiple signatures are required, they should be comma
separated.
string
Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the
request must be processed.
Path Parameters
string
required
ID of the wallet to get.
Body
string
required
Available options:
wallet_sendCallsstring
required
object
required
boolean
Optional parameter to enable gas sponsorship for this transaction. Learn
more.
string
Available options:
ethereumReturns
enum<string>
required
Available options:
wallet_sendCallsWas this page helpful?
⌘I

