Explore practical examples to help you get started with Alchemy's Simulation APIs.
You'll find some examples to get you started below!
You can also try out the APIs yourself using our API playgrounds directly:
- alchemy_simulateAssetChanges
- alchemy_simulateAssetChangesBundle
- alchemy_simulateExecution
- alchemy_simulateExecutionBundle
Chain support
The examples below are for Eth Mainnet and Polygon Mainnet.
Simulation also works on Arbitrum and testnets - more examples coming soon!
Ethereum
ETH - Transfer - simulateAssetChanges
simulateAssetChanges
0xbe0eb53f46cd790cd13851d5eff43d12404d33e8
sending 1 ETH to 0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2
.
To send a normal transfer, remove the data
field from the transaction object in the request.
We will add support for data: " "
and data: "0x"
soon.
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"value": "0xDE0B6B3A7640000"
}
curl --location --request POST 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"value": "0xDE0B6B3A7640000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"rawAmount": "1000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "ETH",
"name": "Ethereum",
"logo": "https://static.alchemyapi.io/images/network-assets/eth.png",
"amount": "1"
}
],
"gasUsed": "0x0",
"error": null
}
}
ETH - Transfer - simulateExecution
simulateExecution
0xbe0eb53f46cd790cd13851d5eff43d12404d33e8
sending 1 ETH to 0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2
.
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"value": "0xDE0B6B3A7640000"
}
curl --location 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--data '{
"jsonrpc": "2.0",
"method": "alchemy_simulateExecution",
"id": 1,
"params": [
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"value": "0xDE0B6B3A7640000"
},
"latest",
{
"format": "NESTED"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"type": "CALL",
"from": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
"to": "0xc02aaa39b223fe8d050e5c4f27ead9083c756cc2",
"value": "0xde0b6b3a7640000",
"gas": "0x80000000000000c0",
"gasUsed": "0x5208",
"input": "0x",
"output": "0x"
}
}
ERC20 - Transfer
vitalik.eth (0xf976d0d0464725157933d94E14Abe548aB5709B6
) sending 1 USDC to demo.eth (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
).
{
"from": "0xf976d0d0464725157933d94E14Abe548aB5709B6",
"to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"value": "0x0",
"data": "0xa9059cbb000000000000000000000000fc43f5f9dd45258b3aff31bdbe6561d97e8b71de00000000000000000000000000000000000000000000000000000000000f4240"
}
curl --location --request POST 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xf976d0d0464725157933d94E14Abe548aB5709B6",
"to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"value": "0x0",
"data": "0xa9059cbb000000000000000000000000fc43f5f9dd45258b3aff31bdbe6561d97e8b71de00000000000000000000000000000000000000000000000000000000000f4240"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0xf976d0d0464725157933d94e14abe548ab5709b6",
"to": "0xfc43f5f9dd45258b3aff31bdbe6561d97e8b71de",
"rawAmount": "1000000",
"contractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"tokenId": null,
"decimals": 6,
"symbol": "USDC",
"name": "USD Coin",
"logo": "https://static.alchemyapi.io/images/assets/3408.png",
"amount": "1"
}
],
"gasUsed": "0xbd81",
"error": null
}
}
WETH - Wrap
0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8
depositing 1 ETH and getting 1 WETH back.
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"data": "0xd0e30db0",
"value": "0xDE0B6B3A7640000"
}
curl --location --request POST 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"data": "0xd0e30db0",
"value": "0xDE0B6B3A7640000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"rawAmount": "1000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "ETH",
"name": "Ethereum",
"logo": "https://static.alchemyapi.io/images/network-assets/eth.png",
"amount": "1"
},
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"to": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
"rawAmount": "1000000000000000000",
"contractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenId": null,
"decimals": 18,
"symbol": "WETH",
"name": "WETH",
"logo": "https://static.alchemyapi.io/images/assets/2396.png",
"amount": "1"
}
],
"gasUsed": "0x5da6",
"error": null
}
}
WETH - Unwrap
0x2e95E1cD077f29733C65D885Ce7AFE278d0726A6
withdrawing 1 ETH (1 WETH sent, 1 ETH returned).
{
"from": "0x2e95E1cD077f29733C65D885Ce7AFE278d0726A6",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"value": "0x0",
"data": "0x2e1a7d4d0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}
curl --location --request POST 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0x2e95E1cD077f29733C65D885Ce7AFE278d0726A6",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"value": "0x0",
"data": "0x2e1a7d4d0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"to": "0x2e95e1cd077f29733c65d885ce7afe278d0726a6",
"rawAmount": "1000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "ETH",
"name": "Ethereum",
"logo": "https://static.alchemyapi.io/images/network-assets/eth.png",
"amount": "1"
},
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0x2e95e1cd077f29733c65d885ce7afe278d0726a6",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"rawAmount": "1000000000000000000",
"contractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenId": null,
"decimals": 18,
"symbol": "WETH",
"name": "WETH",
"logo": "https://static.alchemyapi.io/images/assets/2396.png",
"amount": "1"
}
],
"gasUsed": "0x3674",
"error": null
}
}
Polygon
MATIC - Transfer
0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245
sending 5 MATIC to 0x0d500b1d8e8ef31e21c99e1db9a6444d3adf1270
.
To send a normal transfer, remove the data
field from the transaction object in the request.
We will add support for data: " "
and data: "0x"
soon.
{
"from": "0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245",
"to": "0x0d500b1d8e8ef31e21c99e1db9a6444d3adf1270",
"value": "0x4563918244F40000"
}
curl --location --request POST 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245",
"to": "0x0d500b1d8e8ef31e21c99e1db9a6444d3adf1270",
"value": "0x4563918244F40000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245",
"to": "0x0d500b1d8e8ef31e21c99e1db9a6444d3adf1270",
"rawAmount": "5000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "MATIC",
"name": "MATIC",
"logo": "https://static.alchemyapi.io/images/network-assets/matic.png",
"amount": "5"
}
],
"gasUsed": "0x0",
"error": null
}
}
ERC20 - Transfer
0xf977814e90da44bfa03b6295a0616a897441acec
sending 1 USDC to 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
.
{
"from": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
"to": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"value": "0x0",
"data": "0xa9059cbb000000000000000000000000fc43f5f9dd45258b3aff31bdbe6561d97e8b71de00000000000000000000000000000000000000000000000000000000000f4240"
}
curl --location --request POST 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
"to": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"value": "0x0",
"data": "0xa9059cbb000000000000000000000000fc43f5f9dd45258b3aff31bdbe6561d97e8b71de00000000000000000000000000000000000000000000000000000000000f4240"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0xf977814e90da44bfa03b6295a0616a897441acec",
"to": "0xfc43f5f9dd45258b3aff31bdbe6561d97e8b71de",
"rawAmount": "1000000",
"contractAddress": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
"tokenId": null,
"decimals": 6,
"symbol": "USDC",
"name": "USD Coin (PoS)",
"logo": null,
"amount": "1"
}
],
"gasUsed": "0xa3d8",
"error": null
}
}
WMATIC - Wrap
0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245
depositing 5 MATIC and getting 5 WMATIC back.
{
"from": "0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"data": "0xd0e30db0",
"value": "0x4563918244F40000"
}
curl --location --request POST 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"data": "0xd0e30db0",
"value": "0x4563918244F40000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"rawAmount": "5000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "MATIC",
"name": "MATIC",
"logo": "https://static.alchemyapi.io/images/network-assets/matic.png",
"amount": "5"
},
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"to": "0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245",
"rawAmount": "5000000000000000000",
"contractAddress": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"tokenId": null,
"decimals": 18,
"symbol": "WMATIC",
"name": "Wrapped Matic",
"logo": "https://static.alchemyapi.io/images/assets/8925.png",
"amount": "5"
}
],
"gasUsed": "0x1add",
"error": null
}
}
WMATIC - Unwrap
0xccc52f64ee0fff73ad7312825ee767ce94d4877a
withdrawing 1 MATIC (1 WMATIC sent, 1 MATIC returned).
{
"from": "0xccc52f64ee0fff73ad7312825ee767ce94d4877a",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"value": "0x0",
"data": "0x2e1a7d4d0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}
curl --location --request POST 'https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "alchemy_simulateAssetChanges",
"id": 1,
"params": [
{
"from": "0xccc52f64ee0fff73ad7312825ee767ce94d4877a",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"value": "0x0",
"data": "0x2e1a7d4d0000000000000000000000000000000000000000000000000de0b6b3a7640000"
}
]
}'
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"changes": [
{
"assetType": "NATIVE",
"changeType": "TRANSFER",
"from": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"to": "0xccc52f64ee0fff73ad7312825ee767ce94d4877a",
"rawAmount": "1000000000000000000",
"contractAddress": null,
"tokenId": null,
"decimals": 18,
"symbol": "MATIC",
"name": "MATIC",
"logo": "https://static.alchemyapi.io/images/network-assets/matic.png",
"amount": "1"
},
{
"assetType": "ERC20",
"changeType": "TRANSFER",
"from": "0xccc52f64ee0fff73ad7312825ee767ce94d4877a",
"to": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"rawAmount": "1000000000000000000",
"contractAddress": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"tokenId": null,
"decimals": 18,
"symbol": "WMATIC",
"name": "Wrapped Matic",
"logo": "https://static.alchemyapi.io/images/assets/8925.png",
"amount": "1"
}
],
"gasUsed": "0x3697",
"error": null
}
}