← Go to API
List Contracts
GET
Get Decoded Data
POST
Delete Delegate
DELETE

Safe Transaction Service API Reference


The Safe Transaction Service API Reference is a collection of endpoints that allow to keep track of Safe transactions.

This service is available on multiple networks, at different endpoints.

Contracts

List Contracts

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
address - required
string

name - required
string

displayName - required
string

logoUri
string

contractAbi - required
abi - required
[]

description - required
string

relevance - required
integer

trustedForDelegateCall - required
boolean


Did this API route run successfully?
GET
/api/v1/contracts/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/contracts/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_23
{
_23
"count": 143444,
_23
"next": "https://safe-transaction-mainnet.safe.global/api/v1/contracts/?limit=2&offset=2",
_23
"previous": null,
_23
"results": [
_23
{
_23
"address": "0x0000000000000000000000000000000000000000",
_23
"name": "",
_23
"displayName": "",
_23
"logoUri": null,
_23
"contractAbi": null,
_23
"trustedForDelegateCall": false
_23
},
_23
{
_23
"address": "0x0000000000000000000000000000000000000002",
_23
"name": "",
_23
"displayName": "",
_23
"logoUri": null,
_23
"contractAbi": null,
_23
"trustedForDelegateCall": false
_23
}
_23
]
_23
}


Get Specific Contract

Responses

200 OK - object

application/json

Success
address - required
string

name - required
string

displayName - required
string

logoUri
string

contractAbi - required
abi - required
[]

description - required
string

relevance - required
integer

trustedForDelegateCall - required
boolean


Did this API route run successfully?
GET
/api/v1/contracts/{address}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_29
{
_29
"address": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_29
"name": "Proxy",
_29
"displayName": "",
_29
"logoUri": null,
_29
"contractAbi": {
_29
"abi": [
_29
{
_29
"type": "constructor",
_29
"inputs": [
_29
{
_29
"name": "_masterCopy",
_29
"type": "address"
_29
}
_29
],
_29
"payable": false,
_29
"stateMutability": "nonpayable"
_29
},
_29
{
_29
"type": "fallback",
_29
"payable": true,
_29
"stateMutability": "payable"
_29
}
_29
],
_29
"description": "Proxy",
_29
"relevance": 100
_29
},
_29
"trustedForDelegateCall": false
_29
}


Data-decoder

Get Decoded Data


Returns decoded information using tx service internal ABI information given the tx data as a 0x prefixed hexadecimal string. If address of the receiving contract is provided decoded data will be more accurate, as in case of ABI collision service will know which ABI to use.

Request Body

data - required
string

to - required
string

Responses




Did this API route run successfully?
POST
/api/v1/data-decoder/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/data-decoder/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004f6006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda00000000000000000000",
_10
"to": "0xBEFA89D90c112A416139F42046Cc2d4A8a308815"
_10
}'

Sample Response


_68
{
_68
"method": "multiSend",
_68
"parameters": [
_68
{
_68
"name": "transactions",
_68
"type": "bytes",
_68
"value": "0x006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda",
_68
"valueDecoded": [
_68
{
_68
"operation": 0,
_68
"to": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
_68
"value": "0",
_68
"data": "0x095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000",
_68
"dataDecoded": {
_68
"method": "approve",
_68
"parameters": [
_68
{
_68
"name": "usr",
_68
"type": "address",
_68
"value": "0x1111111254fb6c44bAC0beD2854e76F90643097d"
_68
},
_68
{
_68
"name": "wad",
_68
"type": "uint256",
_68
"value": "15000000000000000285212672"
_68
}
_68
]
_68
}
_68
},
_68
{
_68
"operation": 0,
_68
"to": "0x1111111254fb6c44bAC0beD2854e76F90643097d",
_68
"value": "0",
_68
"data": "0x7c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda",
_68
"dataDecoded": {
_68
"method": "swap",
_68
"parameters": [
_68
{
_68
"name": "caller",
_68
"type": "address",
_68
"value": "0xF2F400C138F9fb900576263af0BC7fCde2B1b8a8"
_68
},
_68
{
_68
"name": "desc",
_68
"type": "(address,address,address,address,uint256,uint256,uint256,bytes)",
_68
"value": [
_68
"0x6B175474E89094C44Da98b954EedeAC495271d0F",
_68
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
_68
"0xF2F400C138F9fb900576263af0BC7fCde2B1b8a8",
_68
"0x4f3a120E72C76c22ae802D129F599BFDbc31cb81",
_68
"15000000000000000285212672",
_68
"14998500000000",
_68
"4",
_68
"0x"
_68
]
_68
},
_68
{
_68
"name": "data",
_68
"type": "bytes",
_68
"value": "0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf00000000000000000000000000000000000000000000000000000000000"
_68
}
_68
]
_68
}
_68
}
_68
]
_68
}
_68
]
_68
}


Delegates

List Delegates


Get list of delegates

Query Parameters

safe
string

safe

delegate
string

delegate

delegator
string

delegator

label
string

label

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
safe - required
string

delegate - required
string

delegator - required
string

label - required
string



Did this API route run successfully?
GET
/api/v2/delegates/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v2/delegates/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Delegate


Create a delegate for a Safe address with a custom label. Calls with same delegate but different label or signer will update the label or delegator if different. An EOA is required to sign the following EIP712 data:

_23
{
_23
"types": {
_23
"EIP712Domain": [
_23
{"name": "name", "type": "string"},
_23
{"name": "version", "type": "string"},
_23
{"name": "chainId", "type": "uint256"},
_23
],
_23
"AddDelegate": [
_23
{"name": "delegateAddress", "type": "bytes32"},
_23
{"name": "totp", "type": "uint256"},
_23
],
_23
},
_23
"primaryType": "AddDelegate",
_23
"domain": {
_23
"name": "Safe Transaction Service",
_23
"version": "1.0",
_23
"chainId": chain_id,
_23
},
_23
"message": {
_23
"delegateAddress": delegate_address,
_23
"totp": totp,
_23
},
_23
}


totp parameter is calculated with T0=0 and Tx=3600. totp is calculated by taking the Unix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)

Request Body

safe - required
string

delegate - required
string

delegator - required
string

signature - required
string

label - required
string

Responses



Did this API route run successfully?
POST
/api/v2/delegates/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v2/delegates/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"safe": "0xB88F61E6FbdA83fbfffAbE364112137480398018",
_10
"delegate": "0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0",
_10
"delegator": "0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_10
"label": "3b3b57b3"
_10
}'


List Delegates


Get list of delegates

Query Parameters

safe
string

safe

delegate
string

delegate

delegator
string

delegator

label
string

label

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
safe - required
string

delegate - required
string

delegator - required
string

label - required
string



Did this API route run successfully?
GET
/api/v2/delegates/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v2/delegates/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Delegate


Create a delegate for a Safe address with a custom label. Calls with same delegate but different label or signer will update the label or delegator if different. An EOA is required to sign the following EIP712 data:

_23
{
_23
"types": {
_23
"EIP712Domain": [
_23
{"name": "name", "type": "string"},
_23
{"name": "version", "type": "string"},
_23
{"name": "chainId", "type": "uint256"},
_23
],
_23
"AddDelegate": [
_23
{"name": "delegateAddress", "type": "bytes32"},
_23
{"name": "totp", "type": "uint256"},
_23
],
_23
},
_23
"primaryType": "AddDelegate",
_23
"domain": {
_23
"name": "Safe Transaction Service",
_23
"version": "1.0",
_23
"chainId": chain_id,
_23
},
_23
"message": {
_23
"delegateAddress": delegate_address,
_23
"totp": totp,
_23
},
_23
}


totp parameter is calculated with T0=0 and Tx=3600. totp is calculated by taking the Unix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)

Request Body

safe - required
string

delegate - required
string

delegator - required
string

signature - required
string

label - required
string

Responses



Did this API route run successfully?
POST
/api/v2/delegates/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v2/delegates/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"safe": "0xB88F61E6FbdA83fbfffAbE364112137480398018",
_10
"delegate": "0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0",
_10
"delegator": "0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_10
"label": "3b3b57b3"
_10
}'


Delete Delegate


Removes all delegate/delegator pairs found or combinations of safe/delegate/delegator/delegate. The signature is constructed in the same way as for adding a delegate, but in this case the signer can be either the delegator (owner) or the delegate itself. Check POST /delegates/.

Request Body

safe - required
string

delegator - required
string

signature - required
string

Responses





Did this API route run successfully?
DELETE
/api/v2/delegates/{delegate_address}/

Sample Request

Try it on Swagger

_10
curl -X DELETE https://safe-transaction-mainnet.safe.global/api/v2/delegates/0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"safe": "0xB88F61E6FbdA83fbfffAbE364112137480398018",
_10
"delegator": "0x5A93Fe8eBBf78738468c10894D7f36fA247b71C0",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'

Sample Response


_10
"Deleted"


Messages

Get Message

Responses

200 OK - object

application/json

Success
created - required
string

modified - required
string

safe - required
string

messageHash - required
string

message - required

proposedBy - required
string

safeAppId - required
integer

confirmations
string

preparedSignature
string


Did this API route run successfully?
GET
/api/v1/messages/{message_hash}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/messages/0x3b3b57b3/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Sign Message

Request Body

signature - required
string

Responses


Did this API route run successfully?
POST
/api/v1/messages/{message_hash}/signatures/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/messages/0x3b3b57b3/signatures/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'


List Messages

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
created - required
string

modified - required
string

safe - required
string

messageHash - required
string

message - required

proposedBy - required
string

safeAppId - required
integer

confirmations
string

preparedSignature
string


Did this API route run successfully?
GET
/api/v1/safes/{address}/messages/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Signed Message


Create a new signed message for a Safe. Message can be:
  • A string, so EIP191 will be used to get the hash.
  • An EIP712 object.

Hash will be calculated from the provided message. Sending a raw hash will not be accepted, service needs to derive it itself.

Request Body

message - required

safeAppId - required
integer

signature - required
string

Responses


Did this API route run successfully?
POST
/api/v1/safes/{address}/messages/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"message": "0x1234",
_10
"safeAppId": "safeAppId",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'


List Messages

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
created - required
string

modified - required
string

safe - required
string

messageHash - required
string

message - required

proposedBy - required
string

safeAppId - required
integer

confirmations
string

preparedSignature
string


Did this API route run successfully?
GET
/api/v1/safes/{address}/messages/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Signed Message


Create a new signed message for a Safe. Message can be:
  • A string, so EIP191 will be used to get the hash.
  • An EIP712 object.

Hash will be calculated from the provided message. Sending a raw hash will not be accepted, service needs to derive it itself.

Request Body

message - required

safeAppId - required
integer

signature - required
string

Responses


Did this API route run successfully?
POST
/api/v1/safes/{address}/messages/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"message": "0x1234",
_10
"safeAppId": "safeAppId",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'


Transactions

Get Module Transaction


:return: module transaction filtered by module_transaction_id

Responses

200 OK - object

application/json

Success
created
string

executionDate - required
string

blockNumber
integer

isSuccessful
boolean

transactionHash
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId
string

Internally calculated parameter to uniquely identify a moduleTransaction `ModuleTransactionId = i+tx_hash+trace_address`




Did this API route run successfully?
GET
/api/v1/module-transaction/{module_transaction_id}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/module-transaction/0x3b3b57b3 \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Get Multisig Transaction

Responses

200 OK - object

application/json

Success
safe - required
string

to - required
string

value - required
string

data
string

operation - required
integer

gasToken
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
string

refundReceiver
string

nonce - required
integer

executionDate - required
string

submissionDate - required
string

modified - required
string

blockNumber
integer

transactionHash - required
string

safeTxHash - required
string

proposer - required
string

executor
string

isExecuted - required
boolean

isSuccessful
boolean

ethGasPrice
string

maxFeePerGas
string

maxPriorityFeePerGas
string

gasUsed
integer

fee
integer

origin
string

dataDecoded
string

confirmationsRequired - required
integer

confirmations
SafeMultisigConfirmationResponse

Filters confirmations queryset :param obj: MultisigConfirmation instance :return: Serialized queryset

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string

trusted - required
boolean

signatures
string


Did this API route run successfully?
GET
/api/v1/multisig-transactions/{safe_tx_hash}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Delete Queued Multisig Transaction


Delete a queued but not executed multisig transaction. Only the proposer can delete the transaction. Delegates are not valid, if the transaction was proposed by a delegator the owner who delegated to the delegate must be used. An EOA is required to sign the following EIP712 data:

_25
{
_25
"types": {
_25
"EIP712Domain": [
_25
{"name": "name", "type": "string"},
_25
{"name": "version", "type": "string"},
_25
{"name": "chainId", "type": "uint256"},
_25
{"name": "verifyingContract", "type": "address"},
_25
],
_25
"DeleteRequest": [
_25
{"name": "safeTxHash", "type": "bytes32"},
_25
{"name": "totp", "type": "uint256"},
_25
],
_25
},
_25
"primaryType": "DeleteRequest",
_25
"domain": {
_25
"name": "Safe Transaction Service",
_25
"version": "1.0",
_25
"chainId": chain_id,
_25
"verifyingContract": safe_address,
_25
},
_25
"message": {
_25
"safeTxHash": safe_tx_hash,
_25
"totp": totp,
_25
},
_25
}


totp parameter is calculated with T0=0 and Tx=3600. totp is calculated by taking the Unix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)

Request Body

safeTxHash - required
string

signature - required
string

Responses




Did this API route run successfully?
DELETE
/api/v1/multisig-transactions/{safe_tx_hash}/

Sample Request

Try it on Swagger

_10
curl -X DELETE https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"safeTxHash": "",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'

Sample Response


_10
"Deleted"


Get Multisig Transaction

Responses

200 OK - object

application/json

Success
safe - required
string

to - required
string

value - required
string

data
string

operation - required
integer

gasToken
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
string

refundReceiver
string

nonce - required
integer

executionDate - required
string

submissionDate - required
string

modified - required
string

blockNumber
integer

transactionHash - required
string

safeTxHash - required
string

proposer - required
string

executor
string

isExecuted - required
boolean

isSuccessful
boolean

ethGasPrice
string

maxFeePerGas
string

maxPriorityFeePerGas
string

gasUsed
integer

fee
integer

origin
string

dataDecoded
string

confirmationsRequired - required
integer

confirmations
SafeMultisigConfirmationResponse

Filters confirmations queryset :param obj: MultisigConfirmation instance :return: Serialized queryset

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string

trusted - required
boolean

signatures
string


Did this API route run successfully?
GET
/api/v1/multisig-transactions/{safe_tx_hash}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Delete Queued Multisig Transaction


Delete a queued but not executed multisig transaction. Only the proposer can delete the transaction. Delegates are not valid, if the transaction was proposed by a delegator the owner who delegated to the delegate must be used. An EOA is required to sign the following EIP712 data:

_25
{
_25
"types": {
_25
"EIP712Domain": [
_25
{"name": "name", "type": "string"},
_25
{"name": "version", "type": "string"},
_25
{"name": "chainId", "type": "uint256"},
_25
{"name": "verifyingContract", "type": "address"},
_25
],
_25
"DeleteRequest": [
_25
{"name": "safeTxHash", "type": "bytes32"},
_25
{"name": "totp", "type": "uint256"},
_25
],
_25
},
_25
"primaryType": "DeleteRequest",
_25
"domain": {
_25
"name": "Safe Transaction Service",
_25
"version": "1.0",
_25
"chainId": chain_id,
_25
"verifyingContract": safe_address,
_25
},
_25
"message": {
_25
"safeTxHash": safe_tx_hash,
_25
"totp": totp,
_25
},
_25
}


totp parameter is calculated with T0=0 and Tx=3600. totp is calculated by taking the Unix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)

Request Body

safeTxHash - required
string

signature - required
string

Responses




Did this API route run successfully?
DELETE
/api/v1/multisig-transactions/{safe_tx_hash}/

Sample Request

Try it on Swagger

_10
curl -X DELETE https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"safeTxHash": "",
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'

Sample Response


_10
"Deleted"


List Multisig Confirmations


Get the list of confirmations for a multisig transaction

Query Parameters

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string



Did this API route run successfully?
GET
/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Confirm Multisig Transaction


Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support the use of delegates to make a transaction trusted.

Request Body

signature - required
string

Responses




Did this API route run successfully?
POST
/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'


List Multisig Confirmations


Get the list of confirmations for a multisig transaction

Query Parameters

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string



Did this API route run successfully?
GET
/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Confirm Multisig Transaction


Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support the use of delegates to make a transaction trusted.

Request Body

signature - required
string

Responses




Did this API route run successfully?
POST
/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'


List Transactions

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

executed
boolean

If `True` only executed transactions are returned

queued
boolean

If `True` transactions with `nonce >= Safe current nonce` are also returned

trusted
boolean

If `True` just trusted transactions are shown (indexed, added by a delegate or with at least one confirmation)

Responses

200 A list with every element with the structure of one of these transactiontypes - object

application/json

Success
created
string

executionDate - required
string

blockNumber
integer

isSuccessful
boolean

transactionHash
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId
string

Internally calculated parameter to uniquely identify a moduleTransaction `ModuleTransactionId = i+tx_hash+trace_address`

transfers - required
type
string

executionDate - required
string

blockNumber - required
integer

transactionHash - required
string

to - required
string

value - required
string

tokenId - required
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

tokenInfo - required
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from - required
string

txType
string

safe - required
string

to - required
string

value - required
string

data
string

operation - required
integer

gasToken
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
string

refundReceiver
string

nonce - required
integer

executionDate - required
string

submissionDate - required
string

modified - required
string

blockNumber
integer

transactionHash - required
string

safeTxHash - required
string

proposer - required
string

executor
string

isExecuted - required
boolean

isSuccessful
boolean

ethGasPrice
string

maxFeePerGas
string

maxPriorityFeePerGas
string

gasUsed
integer

fee
integer

origin
string

dataDecoded
string

confirmationsRequired - required
integer

confirmations
SafeMultisigConfirmationResponse

Filters confirmations queryset :param obj: MultisigConfirmation instance :return: Serialized queryset

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string

trusted - required
boolean

signatures
string

transfers - required
type
string

executionDate - required
string

blockNumber - required
integer

transactionHash - required
string

to - required
string

value - required
string

tokenId - required
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

tokenInfo - required
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from - required
string

txType
string

executionDate - required
string

to - required
string

data - required
string

txHash - required
string

blockNumber
integer

transfers - required
type
string

executionDate - required
string

blockNumber - required
integer

transactionHash - required
string

to - required
string

value - required
string

tokenId - required
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

tokenInfo - required
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from - required
string

txType
string

from - required
string



Did this API route run successfully?
GET
/api/v1/safes/{address}/all-transactions/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_170
{
_170
"count": 81,
_170
"next": "https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/?limit=2&offset=2",
_170
"previous": null,
_170
"results": [
_170
{
_170
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_170
"to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
_170
"value": "0",
_170
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000ce00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_170
"operation": 1,
_170
"gasToken": "0x0000000000000000000000000000000000000000",
_170
"safeTxGas": 48700,
_170
"baseGas": 0,
_170
"gasPrice": "0",
_170
"refundReceiver": "0x0000000000000000000000000000000000000000",
_170
"nonce": 49,
_170
"executionDate": "2024-04-23T02:38:11Z",
_170
"submissionDate": "2024-04-23T02:38:01.015676Z",
_170
"modified": "2024-04-23T02:38:11Z",
_170
"blockNumber": 19715160,
_170
"transactionHash": "0xceeacc3007949920a43a3785e650e0bb86bdd5c20ccb2f6704d25839c81bf306",
_170
"safeTxHash": "0xba192fd48af510cf6065b4997a7c4e5f9f320c82bd6951cd32396d714da4b4cf",
_170
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"isExecuted": true,
_170
"isSuccessful": true,
_170
"ethGasPrice": "8709486175",
_170
"maxFeePerGas": "9000000000",
_170
"maxPriorityFeePerGas": "3086913705",
_170
"gasUsed": 58769,
_170
"fee": "511847793018575",
_170
"origin": "{}",
_170
"dataDecoded": {
_170
"method": "multiSend",
_170
"parameters": [
_170
{
_170
"name": "transactions",
_170
"type": "bytes",
_170
"value": "0x00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_170
"valueDecoded": [
_170
{
_170
"operation": 0,
_170
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_170
"value": "0",
_170
"data": "0x7de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552",
_170
"dataDecoded": {
_170
"method": "changeMasterCopy",
_170
"parameters": [
_170
{
_170
"name": "_masterCopy",
_170
"type": "address",
_170
"value": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"
_170
}
_170
]
_170
}
_170
},
_170
{
_170
"operation": 0,
_170
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_170
"value": "0",
_170
"data": null,
_170
"dataDecoded": null
_170
}
_170
]
_170
}
_170
]
_170
},
_170
"confirmationsRequired": 1,
_170
"confirmations": [
_170
{
_170
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"submissionDate": "2024-04-23T02:38:11Z",
_170
"transactionHash": null,
_170
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_170
"signatureType": "APPROVED_HASH"
_170
}
_170
],
_170
"trusted": true,
_170
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_170
"transfers": [],
_170
"txType": "MULTISIG_TRANSACTION"
_170
},
_170
{
_170
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_170
"to": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6",
_170
"value": "0",
_170
"data": "0x0087b83f172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23000000000000000000000000cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000ffffffffffffffffffffffffffffffff",
_170
"operation": 0,
_170
"gasToken": "0x0000000000000000000000000000000000000000",
_170
"safeTxGas": 133927,
_170
"baseGas": 0,
_170
"gasPrice": "0",
_170
"refundReceiver": "0x0000000000000000000000000000000000000000",
_170
"nonce": 48,
_170
"executionDate": "2024-04-23T02:36:47Z",
_170
"submissionDate": "2024-04-23T02:36:39.804393Z",
_170
"modified": "2024-04-23T02:36:47Z",
_170
"blockNumber": 19715153,
_170
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_170
"safeTxHash": "0xf6846a40fceb0650ed84f1fec8cea5fd18ca9fd14a6bcbf1a7c18c831f47e709",
_170
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"isExecuted": true,
_170
"isSuccessful": true,
_170
"ethGasPrice": "7000000000",
_170
"maxFeePerGas": "7000000000",
_170
"maxPriorityFeePerGas": "1398475847",
_170
"gasUsed": 123205,
_170
"fee": "862435000000000",
_170
"origin": "{\"url\": \"https://governance.safe.global\", \"name\": \"Safe{DAO} Governance\"}",
_170
"dataDecoded": {
_170
"method": "claimVestedTokensViaModule",
_170
"parameters": [
_170
{
_170
"name": "vestingId",
_170
"type": "bytes32",
_170
"value": "0x172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23"
_170
},
_170
{
_170
"name": "beneficiary",
_170
"type": "address",
_170
"value": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75"
_170
},
_170
{
_170
"name": "tokensToClaim",
_170
"type": "uint128",
_170
"value": "340282366920938463463374607431768211455"
_170
}
_170
]
_170
},
_170
"confirmationsRequired": 1,
_170
"confirmations": [
_170
{
_170
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_170
"submissionDate": "2024-04-23T02:36:47Z",
_170
"transactionHash": null,
_170
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_170
"signatureType": "APPROVED_HASH"
_170
}
_170
],
_170
"trusted": true,
_170
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_170
"transfers": [
_170
{
_170
"type": "ERC20_TRANSFER",
_170
"executionDate": "2024-04-23T02:36:47Z",
_170
"blockNumber": 19715153,
_170
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_170
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_170
"value": "381767577609232226683",
_170
"tokenId": null,
_170
"tokenAddress": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_170
"transferId": "e3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c108",
_170
"tokenInfo": {
_170
"type": "ERC20",
_170
"address": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_170
"name": "Safe Token",
_170
"symbol": "SAFE",
_170
"decimals": 18,
_170
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x5aFE3855358E112B5647B952709E6165e1c1eEEe.png",
_170
"trusted": true
_170
},
_170
"from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6"
_170
}
_170
],
_170
"txType": "MULTISIG_TRANSACTION"
_170
}
_170
]
_170
}


List Incoming Transfers

Query Parameters

_from
string

_from

block_number
string

block_number

block_number__gt
string

block_number__gt

block_number__lt
string

block_number__lt

execution_date__gte
string

execution_date__gte

execution_date__lte
string

execution_date__lte

execution_date__gt
string

execution_date__gt

execution_date__lt
string

execution_date__lt

to
string

to

token_address
string

token_address

transaction_hash
string

transaction_hash

value
string

value

value__gt
string

value__gt

value__lt
string

value__lt

erc20
string

erc20

erc721
string

erc721

ether
string

ether

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - array

application/json

Success
type
string

executionDate
string

blockNumber
integer

transactionHash
string

to
string

value
string

tokenId
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from
string



Did this API route run successfully?
GET
/api/v1/safes/{address}/incoming-transfers/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_49
{
_49
"count": 33,
_49
"next": "https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/?limit=2&offset=2",
_49
"previous": null,
_49
"results": [
_49
{
_49
"type": "ERC20_TRANSFER",
_49
"executionDate": "2024-04-23T02:36:47Z",
_49
"blockNumber": 19715153,
_49
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_49
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_49
"value": "381767577609232226683",
_49
"tokenId": null,
_49
"tokenAddress": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_49
"transferId": "e3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c108",
_49
"tokenInfo": {
_49
"type": "ERC20",
_49
"address": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_49
"name": "Safe Token",
_49
"symbol": "SAFE",
_49
"decimals": 18,
_49
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x5aFE3855358E112B5647B952709E6165e1c1eEEe.png",
_49
"trusted": true
_49
},
_49
"from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6"
_49
},
_49
{
_49
"type": "ERC20_TRANSFER",
_49
"executionDate": "2023-08-24T13:07:47Z",
_49
"blockNumber": 17984759,
_49
"transactionHash": "0xcde6f0137885841f54da7dbc370e2e60940c4574adc6ed4d8a606eba1f56438b",
_49
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_49
"value": "1000000000000000000",
_49
"tokenId": null,
_49
"tokenAddress": "0x111111111117dC0aa78b770fA6A738034120C302",
_49
"transferId": "ecde6f0137885841f54da7dbc370e2e60940c4574adc6ed4d8a606eba1f56438b191",
_49
"tokenInfo": {
_49
"type": "ERC20",
_49
"address": "0x111111111117dC0aa78b770fA6A738034120C302",
_49
"name": "1INCH Token",
_49
"symbol": "1INCH",
_49
"decimals": 18,
_49
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x111111111117dC0aa78b770fA6A738034120C302.png",
_49
"trusted": true
_49
},
_49
"from": "0xe9ba60EefdbA996a66A7F5415dDa83573a70c492"
_49
}
_49
]
_49
}


List a Safe's Module Transactions


Returns the module transaction of a Safe

Query Parameters

safe
string

safe

module
string

module

to
string

to

operation
string

operation

failed
string

failed

block_number
string

block_number

block_number__gt
string

block_number__gt

block_number__lt
string

block_number__lt

transaction_hash
string

transaction_hash

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
created
string

executionDate - required
string

blockNumber
integer

isSuccessful
boolean

transactionHash
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId
string

Internally calculated parameter to uniquely identify a moduleTransaction `ModuleTransactionId = i+tx_hash+trace_address`




Did this API route run successfully?
GET
/api/v1/safes/{address}/module-transactions/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


List a Safe's Multisig Transactions


Returns a paginated list of Multisig Transactions for a Safe. By default only trusted multisig transactions are returned.

Query Parameters

failed
string

failed

modified__lt
string

modified__lt

modified__gt
string

modified__gt

modified__lte
string

modified__lte

modified__gte
string

modified__gte

nonce__lt
string

nonce__lt

nonce__gt
string

nonce__gt

nonce__lte
string

nonce__lte

nonce__gte
string

nonce__gte

nonce
string

nonce

safe_tx_hash
string

safe_tx_hash

to
string

to

value__lt
string

value__lt

value__gt
string

value__gt

value
string

value

executed
string

executed

has_confirmations
string

has_confirmations

trusted
string

trusted

execution_date__gte
string

execution_date__gte

execution_date__lte
string

execution_date__lte

submission_date__gte
string

submission_date__gte

submission_date__lte
string

submission_date__lte

transaction_hash
string

transaction_hash

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

safe - required
string

to - required
string

value - required
string

data
string

operation - required
integer

gasToken
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
string

refundReceiver
string

nonce - required
integer

executionDate - required
string

submissionDate - required
string

modified - required
string

blockNumber
integer

transactionHash - required
string

safeTxHash - required
string

proposer - required
string

executor
string

isExecuted - required
boolean

isSuccessful
boolean

ethGasPrice
string

maxFeePerGas
string

maxPriorityFeePerGas
string

gasUsed
integer

fee
integer

origin
string

dataDecoded
string

confirmationsRequired - required
integer

confirmations
SafeMultisigConfirmationResponse

Filters confirmations queryset :param obj: MultisigConfirmation instance :return: Serialized queryset

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string

trusted - required
boolean

signatures
string




Did this API route run successfully?
GET
/api/v1/safes/{address}/multisig-transactions/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_145
{
_145
"count": 50,
_145
"next": "https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/?limit=2&offset=2",
_145
"previous": null,
_145
"results": [
_145
{
_145
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
_145
"value": "0",
_145
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000ce00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_145
"operation": 1,
_145
"gasToken": "0x0000000000000000000000000000000000000000",
_145
"safeTxGas": 48700,
_145
"baseGas": 0,
_145
"gasPrice": "0",
_145
"refundReceiver": "0x0000000000000000000000000000000000000000",
_145
"nonce": 49,
_145
"executionDate": "2024-04-23T02:38:11Z",
_145
"submissionDate": "2024-04-23T02:38:01.015676Z",
_145
"modified": "2024-04-23T02:38:11Z",
_145
"blockNumber": 19715160,
_145
"transactionHash": "0xceeacc3007949920a43a3785e650e0bb86bdd5c20ccb2f6704d25839c81bf306",
_145
"safeTxHash": "0xba192fd48af510cf6065b4997a7c4e5f9f320c82bd6951cd32396d714da4b4cf",
_145
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"isExecuted": true,
_145
"isSuccessful": true,
_145
"ethGasPrice": "8709486175",
_145
"maxFeePerGas": "9000000000",
_145
"maxPriorityFeePerGas": "3086913705",
_145
"gasUsed": 58769,
_145
"fee": "511847793018575",
_145
"origin": "{}",
_145
"dataDecoded": {
_145
"method": "multiSend",
_145
"parameters": [
_145
{
_145
"name": "transactions",
_145
"type": "bytes",
_145
"value": "0x00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_145
"valueDecoded": [
_145
{
_145
"operation": 0,
_145
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"value": "0",
_145
"data": "0x7de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552",
_145
"dataDecoded": {
_145
"method": "changeMasterCopy",
_145
"parameters": [
_145
{
_145
"name": "_masterCopy",
_145
"type": "address",
_145
"value": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"
_145
}
_145
]
_145
}
_145
},
_145
{
_145
"operation": 0,
_145
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"value": "0",
_145
"data": null,
_145
"dataDecoded": null
_145
}
_145
]
_145
}
_145
]
_145
},
_145
"confirmationsRequired": 1,
_145
"confirmations": [
_145
{
_145
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"submissionDate": "2024-04-23T02:38:11Z",
_145
"transactionHash": null,
_145
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_145
"signatureType": "APPROVED_HASH"
_145
}
_145
],
_145
"trusted": true,
_145
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001"
_145
},
_145
{
_145
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"to": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6",
_145
"value": "0",
_145
"data": "0x0087b83f172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23000000000000000000000000cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000ffffffffffffffffffffffffffffffff",
_145
"operation": 0,
_145
"gasToken": "0x0000000000000000000000000000000000000000",
_145
"safeTxGas": 133927,
_145
"baseGas": 0,
_145
"gasPrice": "0",
_145
"refundReceiver": "0x0000000000000000000000000000000000000000",
_145
"nonce": 48,
_145
"executionDate": "2024-04-23T02:36:47Z",
_145
"submissionDate": "2024-04-23T02:36:39.804393Z",
_145
"modified": "2024-04-23T02:36:47Z",
_145
"blockNumber": 19715153,
_145
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_145
"safeTxHash": "0xf6846a40fceb0650ed84f1fec8cea5fd18ca9fd14a6bcbf1a7c18c831f47e709",
_145
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"isExecuted": true,
_145
"isSuccessful": true,
_145
"ethGasPrice": "7000000000",
_145
"maxFeePerGas": "7000000000",
_145
"maxPriorityFeePerGas": "1398475847",
_145
"gasUsed": 123205,
_145
"fee": "862435000000000",
_145
"origin": "{\"url\": \"https://governance.safe.global\", \"name\": \"Safe{DAO} Governance\"}",
_145
"dataDecoded": {
_145
"method": "claimVestedTokensViaModule",
_145
"parameters": [
_145
{
_145
"name": "vestingId",
_145
"type": "bytes32",
_145
"value": "0x172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23"
_145
},
_145
{
_145
"name": "beneficiary",
_145
"type": "address",
_145
"value": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75"
_145
},
_145
{
_145
"name": "tokensToClaim",
_145
"type": "uint128",
_145
"value": "340282366920938463463374607431768211455"
_145
}
_145
]
_145
},
_145
"confirmationsRequired": 1,
_145
"confirmations": [
_145
{
_145
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"submissionDate": "2024-04-23T02:36:47Z",
_145
"transactionHash": null,
_145
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_145
"signatureType": "APPROVED_HASH"
_145
}
_145
],
_145
"trusted": true,
_145
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001"
_145
}
_145
],
_145
"countUniqueNonce": 50
_145
}


Create Multisig Transaction


Creates a Multisig Transaction with its confirmations and retrieves all the information related.

Request Body

safe - required
string

to - required
string

value - required
integer

data - required
string

operation - required
integer

gasToken - required
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
integer

refundReceiver - required
string

nonce - required
integer

contractTransactionHash - required
string

sender - required
string

signature - required
string

origin - required
string

Responses




Did this API route run successfully?
POST
/api/v1/safes/{address}/multisig-transactions/

Sample Request

Try it on Swagger

_20
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
_20
-H "Accept: application/json" \
_20
-H "content-type: application/json" \
_20
-d '{
_20
"safe": "0xB88F61E6FbdA83fbfffAbE364112137480398018",
_20
"to": "0xBEFA89D90c112A416139F42046Cc2d4A8a308815",
_20
"value": "0",
_20
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004f6006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda00000000000000000000",
_20
"operation": 0,
_20
"gasToken": "",
_20
"safeTxGas": "",
_20
"baseGas": "",
_20
"gasPrice": "",
_20
"refundReceiver": "",
_20
"nonce": "",
_20
"contractTransactionHash": "",
_20
"sender": "",
_20
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_20
"origin": ""
_20
}'


List a Safe's Multisig Transactions


Returns a paginated list of Multisig Transactions for a Safe. By default only trusted multisig transactions are returned.

Query Parameters

failed
string

failed

modified__lt
string

modified__lt

modified__gt
string

modified__gt

modified__lte
string

modified__lte

modified__gte
string

modified__gte

nonce__lt
string

nonce__lt

nonce__gt
string

nonce__gt

nonce__lte
string

nonce__lte

nonce__gte
string

nonce__gte

nonce
string

nonce

safe_tx_hash
string

safe_tx_hash

to
string

to

value__lt
string

value__lt

value__gt
string

value__gt

value
string

value

executed
string

executed

has_confirmations
string

has_confirmations

trusted
string

trusted

execution_date__gte
string

execution_date__gte

execution_date__lte
string

execution_date__lte

submission_date__gte
string

submission_date__gte

submission_date__lte
string

submission_date__lte

transaction_hash
string

transaction_hash

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

safe - required
string

to - required
string

value - required
string

data
string

operation - required
integer

gasToken
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
string

refundReceiver
string

nonce - required
integer

executionDate - required
string

submissionDate - required
string

modified - required
string

blockNumber
integer

transactionHash - required
string

safeTxHash - required
string

proposer - required
string

executor
string

isExecuted - required
boolean

isSuccessful
boolean

ethGasPrice
string

maxFeePerGas
string

maxPriorityFeePerGas
string

gasUsed
integer

fee
integer

origin
string

dataDecoded
string

confirmationsRequired - required
integer

confirmations
SafeMultisigConfirmationResponse

Filters confirmations queryset :param obj: MultisigConfirmation instance :return: Serialized queryset

owner - required
string

submissionDate - required
string

transactionHash
string

signature - required
string

signatureType
string

trusted - required
boolean

signatures
string




Did this API route run successfully?
GET
/api/v1/safes/{address}/multisig-transactions/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_145
{
_145
"count": 50,
_145
"next": "https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/?limit=2&offset=2",
_145
"previous": null,
_145
"results": [
_145
{
_145
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
_145
"value": "0",
_145
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000ce00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_145
"operation": 1,
_145
"gasToken": "0x0000000000000000000000000000000000000000",
_145
"safeTxGas": 48700,
_145
"baseGas": 0,
_145
"gasPrice": "0",
_145
"refundReceiver": "0x0000000000000000000000000000000000000000",
_145
"nonce": 49,
_145
"executionDate": "2024-04-23T02:38:11Z",
_145
"submissionDate": "2024-04-23T02:38:01.015676Z",
_145
"modified": "2024-04-23T02:38:11Z",
_145
"blockNumber": 19715160,
_145
"transactionHash": "0xceeacc3007949920a43a3785e650e0bb86bdd5c20ccb2f6704d25839c81bf306",
_145
"safeTxHash": "0xba192fd48af510cf6065b4997a7c4e5f9f320c82bd6951cd32396d714da4b4cf",
_145
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"isExecuted": true,
_145
"isSuccessful": true,
_145
"ethGasPrice": "8709486175",
_145
"maxFeePerGas": "9000000000",
_145
"maxPriorityFeePerGas": "3086913705",
_145
"gasUsed": 58769,
_145
"fee": "511847793018575",
_145
"origin": "{}",
_145
"dataDecoded": {
_145
"method": "multiSend",
_145
"parameters": [
_145
{
_145
"name": "transactions",
_145
"type": "bytes",
_145
"value": "0x00cd2e72aebe2a203b84f46deec948e6465db51c75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000247de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee70955200cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_145
"valueDecoded": [
_145
{
_145
"operation": 0,
_145
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"value": "0",
_145
"data": "0x7de7edef000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552",
_145
"dataDecoded": {
_145
"method": "changeMasterCopy",
_145
"parameters": [
_145
{
_145
"name": "_masterCopy",
_145
"type": "address",
_145
"value": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"
_145
}
_145
]
_145
}
_145
},
_145
{
_145
"operation": 0,
_145
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"value": "0",
_145
"data": null,
_145
"dataDecoded": null
_145
}
_145
]
_145
}
_145
]
_145
},
_145
"confirmationsRequired": 1,
_145
"confirmations": [
_145
{
_145
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"submissionDate": "2024-04-23T02:38:11Z",
_145
"transactionHash": null,
_145
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_145
"signatureType": "APPROVED_HASH"
_145
}
_145
],
_145
"trusted": true,
_145
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001"
_145
},
_145
{
_145
"safe": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_145
"to": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6",
_145
"value": "0",
_145
"data": "0x0087b83f172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23000000000000000000000000cd2e72aebe2a203b84f46deec948e6465db51c7500000000000000000000000000000000ffffffffffffffffffffffffffffffff",
_145
"operation": 0,
_145
"gasToken": "0x0000000000000000000000000000000000000000",
_145
"safeTxGas": 133927,
_145
"baseGas": 0,
_145
"gasPrice": "0",
_145
"refundReceiver": "0x0000000000000000000000000000000000000000",
_145
"nonce": 48,
_145
"executionDate": "2024-04-23T02:36:47Z",
_145
"submissionDate": "2024-04-23T02:36:39.804393Z",
_145
"modified": "2024-04-23T02:36:47Z",
_145
"blockNumber": 19715153,
_145
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_145
"safeTxHash": "0xf6846a40fceb0650ed84f1fec8cea5fd18ca9fd14a6bcbf1a7c18c831f47e709",
_145
"proposer": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"executor": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"isExecuted": true,
_145
"isSuccessful": true,
_145
"ethGasPrice": "7000000000",
_145
"maxFeePerGas": "7000000000",
_145
"maxPriorityFeePerGas": "1398475847",
_145
"gasUsed": 123205,
_145
"fee": "862435000000000",
_145
"origin": "{\"url\": \"https://governance.safe.global\", \"name\": \"Safe{DAO} Governance\"}",
_145
"dataDecoded": {
_145
"method": "claimVestedTokensViaModule",
_145
"parameters": [
_145
{
_145
"name": "vestingId",
_145
"type": "bytes32",
_145
"value": "0x172fb115f1aa2601f3a45ccdc47cacc02ed0ffa48d07d22d201f548bf49fed23"
_145
},
_145
{
_145
"name": "beneficiary",
_145
"type": "address",
_145
"value": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75"
_145
},
_145
{
_145
"name": "tokensToClaim",
_145
"type": "uint128",
_145
"value": "340282366920938463463374607431768211455"
_145
}
_145
]
_145
},
_145
"confirmationsRequired": 1,
_145
"confirmations": [
_145
{
_145
"owner": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_145
"submissionDate": "2024-04-23T02:36:47Z",
_145
"transactionHash": null,
_145
"signature": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001",
_145
"signatureType": "APPROVED_HASH"
_145
}
_145
],
_145
"trusted": true,
_145
"signatures": "0x000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb000000000000000000000000000000000000000000000000000000000000000001"
_145
}
_145
],
_145
"countUniqueNonce": 50
_145
}


Create Multisig Transaction


Creates a Multisig Transaction with its confirmations and retrieves all the information related.

Request Body

safe - required
string

to - required
string

value - required
integer

data - required
string

operation - required
integer

gasToken - required
string

safeTxGas - required
integer

baseGas - required
integer

gasPrice - required
integer

refundReceiver - required
string

nonce - required
integer

contractTransactionHash - required
string

sender - required
string

signature - required
string

origin - required
string

Responses




Did this API route run successfully?
POST
/api/v1/safes/{address}/multisig-transactions/

Sample Request

Try it on Swagger

_20
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
_20
-H "Accept: application/json" \
_20
-H "content-type: application/json" \
_20
-d '{
_20
"safe": "0xB88F61E6FbdA83fbfffAbE364112137480398018",
_20
"to": "0xBEFA89D90c112A416139F42046Cc2d4A8a308815",
_20
"value": "0",
_20
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004f6006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda00000000000000000000",
_20
"operation": 0,
_20
"gasToken": "",
_20
"safeTxGas": "",
_20
"baseGas": "",
_20
"gasPrice": "",
_20
"refundReceiver": "",
_20
"nonce": "",
_20
"contractTransactionHash": "",
_20
"sender": "",
_20
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_20
"origin": ""
_20
}'


Estimate Gas Costs for a Multisig Transaction


Estimates safeTxGas for a Safe Multisig Transaction.

Request Body

to - required
string

value - required
integer

data - required
string

operation - required
integer

Responses

200 OK - object

application/json

Success
safeTxGas - required
string





Did this API route run successfully?
POST
/api/v1/safes/{address}/multisig-transactions/estimations/

Sample Request

Try it on Swagger

_10
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"to": "0xBEFA89D90c112A416139F42046Cc2d4A8a308815",
_10
"value": "0",
_10
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004f6006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda00000000000000000000",
_10
"operation": 0
_10
}'

Sample Response


_10
{
_10
"safeTxGas": "42806"
_10
}


List Transfers

Query Parameters

_from
string

_from

block_number
string

block_number

block_number__gt
string

block_number__gt

block_number__lt
string

block_number__lt

execution_date__gte
string

execution_date__gte

execution_date__lte
string

execution_date__lte

execution_date__gt
string

execution_date__gt

execution_date__lt
string

execution_date__lt

to
string

to

token_address
string

token_address

transaction_hash
string

transaction_hash

value
string

value

value__gt
string

value__gt

value__lt
string

value__lt

erc20
string

erc20

erc721
string

erc721

ether
string

ether

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - array

application/json

Success
type
string

executionDate
string

blockNumber
integer

transactionHash
string

to
string

value
string

tokenId
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from
string



Did this API route run successfully?
GET
/api/v1/safes/{address}/transfers/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_49
{
_49
"count": 77,
_49
"next": "https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/?limit=2&offset=2",
_49
"previous": null,
_49
"results": [
_49
{
_49
"type": "ERC20_TRANSFER",
_49
"executionDate": "2024-04-23T02:36:47Z",
_49
"blockNumber": 19715153,
_49
"transactionHash": "0x3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c",
_49
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_49
"value": "381767577609232226683",
_49
"tokenId": null,
_49
"tokenAddress": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_49
"transferId": "e3e8d89540a749fc0cc81709004a9047e6199dcec7b4d99d2f660a1d26e6e089c108",
_49
"tokenInfo": {
_49
"type": "ERC20",
_49
"address": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
_49
"name": "Safe Token",
_49
"symbol": "SAFE",
_49
"decimals": 18,
_49
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x5aFE3855358E112B5647B952709E6165e1c1eEEe.png",
_49
"trusted": true
_49
},
_49
"from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6"
_49
},
_49
{
_49
"type": "ERC20_TRANSFER",
_49
"executionDate": "2023-08-24T13:07:47Z",
_49
"blockNumber": 17984759,
_49
"transactionHash": "0xcde6f0137885841f54da7dbc370e2e60940c4574adc6ed4d8a606eba1f56438b",
_49
"to": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_49
"value": "1000000000000000000",
_49
"tokenId": null,
_49
"tokenAddress": "0x111111111117dC0aa78b770fA6A738034120C302",
_49
"transferId": "ecde6f0137885841f54da7dbc370e2e60940c4574adc6ed4d8a606eba1f56438b191",
_49
"tokenInfo": {
_49
"type": "ERC20",
_49
"address": "0x111111111117dC0aa78b770fA6A738034120C302",
_49
"name": "1INCH Token",
_49
"symbol": "1INCH",
_49
"decimals": 18,
_49
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x111111111117dC0aa78b770fA6A738034120C302.png",
_49
"trusted": true
_49
},
_49
"from": "0xe9ba60EefdbA996a66A7F5415dDa83573a70c492"
_49
}
_49
]
_49
}


Modules

List Safes that use a Specific Module


Return Safes where the module address provided is enabled

Responses

200 OK - object

application/json

Success
safes - required
[]



Did this API route run successfully?
GET
/api/v1/modules/{address}/safes/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"safes": []
_10
}


Owners

List Safes from a Specific Owner


Return Safes where the address provided is an owner

Responses

200 OK - object

application/json

Success
safes - required
[]



Did this API route run successfully?
GET
/api/v1/owners/{address}/safes/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"safes": []
_10
}


4337

Get Safe Operation

Responses

200 OK - object

application/json

Success
created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string

ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string


Did this API route run successfully?
GET
/api/v1/safe-operations/{safe_operation_hash}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safe-operations// \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


List Safe Operations

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string

ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string


Did this API route run successfully?
GET
/api/v1/safes/{address}/safe-operations/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Safe Operation


Create a new 4337 SafeOperation for a Safe.

:param request: :param address: :param args: :param kwargs: :return:

Request Body

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymasterAndData - required
string

signature - required
string

entryPoint - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

Responses


Did this API route run successfully?
POST
/api/v1/safes/{address}/safe-operations/

Sample Request

Try it on Swagger

_19
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_19
-H "Accept: application/json" \
_19
-H "content-type: application/json" \
_19
-d '{
_19
"nonce": "",
_19
"initCode": "",
_19
"callData": "",
_19
"callDataGasLimit": "",
_19
"verificationGasLimit": "",
_19
"preVerificationGas": "",
_19
"maxFeePerGas": "",
_19
"maxPriorityFeePerGas": "",
_19
"paymasterAndData": "",
_19
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_19
"entryPoint": "",
_19
"validAfter": "",
_19
"validUntil": "",
_19
"moduleAddress": ""
_19
}'


List Safe Operations

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string

ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string


Did this API route run successfully?
GET
/api/v1/safes/{address}/safe-operations/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Create Safe Operation


Create a new 4337 SafeOperation for a Safe.

:param request: :param address: :param args: :param kwargs: :return:

Request Body

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymasterAndData - required
string

signature - required
string

entryPoint - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

Responses


Did this API route run successfully?
POST
/api/v1/safes/{address}/safe-operations/

Sample Request

Try it on Swagger

_19
curl -X POST https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_19
-H "Accept: application/json" \
_19
-H "content-type: application/json" \
_19
-d '{
_19
"nonce": "",
_19
"initCode": "",
_19
"callData": "",
_19
"callDataGasLimit": "",
_19
"verificationGasLimit": "",
_19
"preVerificationGas": "",
_19
"maxFeePerGas": "",
_19
"maxPriorityFeePerGas": "",
_19
"paymasterAndData": "",
_19
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_19
"entryPoint": "",
_19
"validAfter": "",
_19
"validUntil": "",
_19
"moduleAddress": ""
_19
}'


List User Operations

Query Parameters

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string

created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string


Did this API route run successfully?
GET
/api/v1/safes/{address}/user-operations/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_10
{
_10
"count": 0,
_10
"next": null,
_10
"previous": null,
_10
"results": []
_10
}


Get User Operation

Responses

200 OK - object

application/json

Success
ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string

created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string


Did this API route run successfully?
GET
/api/v1/user-operations/{user_operation_hash}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/user-operations// \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Safes

Get Safe Status


Get status of the safe

Responses

200 OK - object

application/json

Success
address - required
string

nonce - required
integer

threshold - required
integer

owners - required
[]

masterCopy - required
string

modules - required
[]

fallbackHandler - required
string

guard - required
string

version - required
string




Did this API route run successfully?
GET
/api/v1/safes/{address}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_14
{
_14
"address": "0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75",
_14
"nonce": 50,
_14
"threshold": 1,
_14
"owners": [
_14
"0x56519083C3cfeAE833B93a93c843C993bE1D74EA",
_14
"0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB"
_14
],
_14
"masterCopy": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552",
_14
"modules": [],
_14
"fallbackHandler": "0x0000000000000000000000000000000000000000",
_14
"guard": "0x0000000000000000000000000000000000000000",
_14
"version": "1.3.0"
_14
}


List a Safe's Balances (Deprecated)


Get balance for Ether and ERC20 tokens

Query Parameters

trusted
boolean

If `True` just trusted tokens will be returned

exclude_spam
boolean

If `True` spam tokens will not be returned

Responses

200 OK - array

application/json

Success
tokenAddress
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri - required
string

balance
string




Did this API route run successfully?
GET
/api/v1/safes/{address}/balances/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_17
[
_17
{
_17
"tokenAddress": null,
_17
"token": null,
_17
"balance": "100000000000000"
_17
},
_17
{
_17
"tokenAddress": "0x111111111117dC0aa78b770fA6A738034120C302",
_17
"token": {
_17
"name": "1INCH Token",
_17
"symbol": "1INCH",
_17
"decimals": 18,
_17
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x111111111117dC0aa78b770fA6A738034120C302.png"
_17
},
_17
"balance": "1000000000000000000"
_17
}
_17
]


Get Safe Creation Status


Get status of the safe

Responses

200 OK - object

application/json

Success
created - required
string

creator - required
string

transactionHash - required
string

factoryAddress - required
string

masterCopy - required
string

setupData - required
string

dataDecoded
string

ethereumTxHash - required
string

sender - required
string

userOperationHash - required
string

nonce - required
integer

initCode - required
string

callData - required
string

callDataGasLimit - required
integer

verificationGasLimit - required
integer

preVerificationGas - required
integer

maxFeePerGas - required
integer

maxPriorityFeePerGas - required
integer

paymaster - required
string

paymasterData - required
string

signature - required
string

entryPoint - required
string

created - required
string

modified - required
string

safeOperationHash - required
string

validAfter - required
string

validUntil - required
string

moduleAddress - required
string

confirmations
string

preparedSignature
string





Did this API route run successfully?
GET
/api/v1/safes/{address}/creation/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_51
{
_51
"created": "2019-11-27T15:01:45Z",
_51
"creator": "0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB",
_51
"transactionHash": "0x9c65d416867d9e13732fee8b85dd44c4d774b9bad31b3cd44e78eeefc33ce97f",
_51
"factoryAddress": "0x12302fE9c02ff50939BaAaaf415fc226C078613C",
_51
"masterCopy": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A",
_51
"setupData": "0xa97ab18a00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a1b02d8c67b0fdcf4e379855868deb470e169cfb0000000000000000000000000000000000000000000000000000000000000000",
_51
"dataDecoded": {
_51
"method": "setup",
_51
"parameters": [
_51
{
_51
"name": "_owners",
_51
"type": "address[]",
_51
"value": [
_51
"0xA1b02d8c67b0FDCF4E379855868DeB470E169cfB"
_51
]
_51
},
_51
{
_51
"name": "_threshold",
_51
"type": "uint256",
_51
"value": "1"
_51
},
_51
{
_51
"name": "to",
_51
"type": "address",
_51
"value": "0x0000000000000000000000000000000000000000"
_51
},
_51
{
_51
"name": "data",
_51
"type": "bytes",
_51
"value": "0x"
_51
},
_51
{
_51
"name": "paymentToken",
_51
"type": "address",
_51
"value": "0x0000000000000000000000000000000000000000"
_51
},
_51
{
_51
"name": "payment",
_51
"type": "uint256",
_51
"value": "0"
_51
},
_51
{
_51
"name": "paymentReceiver",
_51
"type": "address",
_51
"value": "0x0000000000000000000000000000000000000000"
_51
}
_51
]
_51
},
_51
"userOperation": null
_51
}


List Collectibles


Get collectibles (ERC721 tokens) and information about them

Query Parameters

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

trusted
boolean

If `True` just trusted tokens will be returned

exclude_spam
boolean

If `True` spam tokens will not be returned

Responses

200 OK - array

application/json

Success
address
string

tokenName
string

tokenSymbol
string

logoUri
string

id
string

uri
string

name
string

description
string

imageUri
string

metadata




Did this API route run successfully?
GET
/api/v2/safes/{address}/collectibles/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_19
{
_19
"count": 1,
_19
"next": null,
_19
"previous": null,
_19
"results": [
_19
{
_19
"address": "0x18F36D3222324DdAC1eFD0a524aabFb9D77D8041",
_19
"tokenName": "Glarbs",
_19
"tokenSymbol": "GLARB",
_19
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x18F36D3222324DdAC1eFD0a524aabFb9D77D8041.png",
_19
"id": "2098",
_19
"uri": "https://tokenofinfection.com/metadata/human/2098",
_19
"name": null,
_19
"description": null,
_19
"imageUri": null,
_19
"metadata": {}
_19
}
_19
]
_19
}


Tokens

List Tokens

Query Parameters

name
string

name

address
string

address

symbol
string

symbol

decimals__lt
string

decimals__lt

decimals__gt
string

decimals__gt

decimals
string

decimals

search
string

A search term.

ordering
string

Which field to use when ordering the results.

limit
integer

Number of results to return per page.

offset
integer

The initial index from which to return the results.

Responses

200 OK - object

application/json

Success
count - required
integer

next
string

previous
string

results - required
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean


Did this API route run successfully?
GET
/api/v1/tokens/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/tokens/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

Sample Response


_25
{
_25
"count": 40289,
_25
"next": "https://safe-transaction-mainnet.safe.global/api/v1/tokens/?limit=2&offset=2",
_25
"previous": null,
_25
"results": [
_25
{
_25
"type": "ERC20",
_25
"address": "0x56EBDaE96d179549f279ea0cFEa3b3432B8Cd2bC",
_25
"name": "",
_25
"symbol": "",
_25
"decimals": 18,
_25
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x56EBDaE96d179549f279ea0cFEa3b3432B8Cd2bC.png",
_25
"trusted": false
_25
},
_25
{
_25
"type": "ERC20",
_25
"address": "0x85A7a676D610A95865E842d2754b1fd335E55767",
_25
"name": "",
_25
"symbol": "",
_25
"decimals": 7,
_25
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x85A7a676D610A95865E842d2754b1fd335E55767.png",
_25
"trusted": false
_25
}
_25
]
_25
}


Get a Specific Token's Information

Responses

200 OK - object

application/json

Success
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean


Did this API route run successfully?
GET
/api/v1/tokens/{address}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Transfer

Get Transfer


:return: transfer filtered by transfer_id

Responses

200 OK - object

application/json

Success
type
string

executionDate - required
string

blockNumber - required
integer

transactionHash - required
string

to - required
string

value - required
string

tokenId - required
string

tokenAddress
string

transferId
string

Internally calculated parameter to uniquely identify a transfer Token transfers are calculated as `transferId = e+tx_hash+log_index` Ether transfers are calculated as `transferId = i+tx_hash+trace_address`

tokenInfo - required
type
string

address - required
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri
string

trusted - required
boolean

from - required
string




Did this API route run successfully?
GET
/api/v1/transfer/{transfer_id}/

Sample Request

Try it on Swagger

_10
curl -X GET https://safe-transaction-mainnet.safe.global/api/v1/transfer/3b3b57b3 \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \


Was this page helpful?