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


Returns the list of known smart contracts with their ABI’s

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-sepolia.safe.global/api/v1/contracts/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_31
{
_31
"count": 16233,
_31
"next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
_31
"previous": null,
_31
"results": [
_31
{
_31
"address": "0x0000000000000000000000000000000000000000",
_31
"name": "MetaMultiSigWallet",
_31
"displayName": "",
_31
"logoUri": null,
_31
"contractAbi": {
_31
"abi": [],
_31
"description": "MetaMultiSigWallet",
_31
"relevance": 100
_31
},
_31
"trustedForDelegateCall": false
_31
},
_31
{
_31
"address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
_31
"name": "Seaport",
_31
"displayName": "",
_31
"logoUri": null,
_31
"contractAbi": {
_31
"abi": [],
_31
"description": "Seaport",
_31
"relevance": 100
_31
},
_31
"trustedForDelegateCall": false
_31
}
_31
]
_31
}


Get Specific Contract


Returns the relevant information of a known smart 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-sepolia.safe.global/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_12
{
_12
"address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
_12
"name": "Seaport",
_12
"displayName": "",
_12
"logoUri": null,
_12
"contractAbi": {
_12
"abi": [],
_12
"description": "Seaport",
_12
"relevance": 100
_12
},
_12
"trustedForDelegateCall": false
_12
}


Data-decoder

Get Decoded Data


Returns the decoded data using the Safe Transaction Service internal ABI information given the transaction data as a 0x prefixed hexadecimal string. If the address of the receiving contract is provided, the decoded data will be more accurate, as in case of an ABI collision the Safe Transaction Service would 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_15
{
_15
"method": "transfer",
_15
"parameters": [
_15
{
_15
"name": "to",
_15
"type": "address",
_15
"value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
_15
},
_15
{
_15
"name": "value",
_15
"type": "uint256",
_15
"value": "10000000000000000000"
_15
}
_15
]
_15
}


Delegates

List Delegates


Returns a list with all the 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_13
{
_13
"count": 1,
_13
"next": null,
_13
"previous": null,
_13
"results": [
_13
{
_13
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_13
"delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
_13
"delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_13
"label": "Sample Delegator 2"
_13
}
_13
]
_13
}


Create Delegate


Adds a new Safe delegate with a custom label. Calls with same delegate but different label or signer will update the label or delegator if a different one is provided. To generate the signature, the following EIP712 data hash needs to be signed:

_23
{
_23
"types": {
_23
"EIP712Domain": [
_23
{"name": "name", "type": "string"},
_23
{"name": "version", "type": "string"},
_23
{"name": "chainId", "type": "uint256"},
_23
],
_23
"Delegate": [
_23
{"name": "delegateAddress", "type": "address"},
_23
{"name": "totp", "type": "uint256"},
_23
],
_23
},
_23
"primaryType": "Delegate",
_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
}


For the signature we use TOTP 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


Delete Delegate


Removes every delegate/delegator pair found associated with a given delegate address. The signature is built 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/ to learn more.

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


Messages

Get Message


Returns detailed information on a message associated with a given message hash

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_19
{
_19
"created": "2024-07-29T16:59:00.807652Z",
_19
"modified": "2024-07-29T16:59:00.807652Z",
_19
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_19
"messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
_19
"message": "string message",
_19
"proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_19
"safeAppId": null,
_19
"confirmations": [
_19
{
_19
"created": "2024-07-29T16:59:00.843249Z",
_19
"modified": "2024-07-29T16:59:00.843249Z",
_19
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_19
"signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
_19
"signatureType": "ETH_SIGN"
_19
}
_19
],
_19
"preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
_19
}


Sign Message


Adds the signature of a message given its message hash

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


List Messages


Returns the list of messages for a given Safe account

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_26
{
_26
"count": 1,
_26
"next": null,
_26
"previous": null,
_26
"results": [
_26
{
_26
"created": "2024-07-29T16:59:00.807652Z",
_26
"modified": "2024-07-29T16:59:00.807652Z",
_26
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_26
"messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
_26
"message": "string message",
_26
"proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_26
"safeAppId": null,
_26
"confirmations": [
_26
{
_26
"created": "2024-07-29T16:59:00.843249Z",
_26
"modified": "2024-07-29T16:59:00.843249Z",
_26
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_26
"signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
_26
"signatureType": "ETH_SIGN"
_26
}
_26
],
_26
"preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
_26
}
_26
]
_26
}


Create Signed Message


Adds a new message for a given Safe account. 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
curl
TypeScript

_10
curl -X POST https://safe-transaction-sepolia.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": 1,
_10
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c"
_10
}'

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


Transactions

Get Module Transaction


Returns a transaction executed from a module given its associated module transaction ID

Responses

200 OK - object

application/json

Success
created
string

executionDate - required
string

blockNumber - required
integer

isSuccessful
boolean

transactionHash - required
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId - required
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-sepolia.safe.global/api/v1/module-transaction/0x3b3b57b3 \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_15
{
_15
"created": "2024-07-24T20:54:48Z",
_15
"executionDate": "2024-07-24T20:54:48Z",
_15
"blockNumber": 6369595,
_15
"isSuccessful": true,
_15
"transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
_15
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_15
"module": "0x9085149079b87E32178669097bc82D341CB65678",
_15
"to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_15
"value": "10000000000",
_15
"data": "0x00",
_15
"operation": 0,
_15
"dataDecoded": null,
_15
"moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
_15
}


Get Multisig Transaction


Returns a multi-signature transaction given its Safe transaction hash

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-sepolia.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_49
{
_49
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_49
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
_49
"value": "50000000000000",
_49
"data": null,
_49
"operation": 0,
_49
"gasToken": "0x0000000000000000000000000000000000000000",
_49
"safeTxGas": 0,
_49
"baseGas": 0,
_49
"gasPrice": "0",
_49
"refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_49
"nonce": 0,
_49
"executionDate": null,
_49
"submissionDate": "2024-06-26T14:57:15.429517Z",
_49
"modified": "2024-06-28T14:18:04.121072Z",
_49
"blockNumber": null,
_49
"transactionHash": null,
_49
"safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
_49
"proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_49
"executor": null,
_49
"isExecuted": false,
_49
"isSuccessful": null,
_49
"ethGasPrice": null,
_49
"maxFeePerGas": null,
_49
"maxPriorityFeePerGas": null,
_49
"gasUsed": null,
_49
"fee": null,
_49
"origin": "{}",
_49
"dataDecoded": null,
_49
"confirmationsRequired": 2,
_49
"confirmations": [
_49
{
_49
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_49
"submissionDate": "2024-06-26T14:57:15.504003Z",
_49
"transactionHash": null,
_49
"signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
_49
"signatureType": "ETH_SIGN"
_49
},
_49
{
_49
"owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_49
"submissionDate": "2024-06-28T14:18:04.121072Z",
_49
"transactionHash": null,
_49
"signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
_49
"signatureType": "ETH_SIGN"
_49
}
_49
],
_49
"trusted": true,
_49
"signatures": null
_49
}


Delete Queued Multisig Transaction


Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash. Only the proposer can delete the transaction. If the transaction was proposed by a delegate, the Safe owner who delegated to the delegate must be used. An EOA is required to sign the following EIP-712 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-sepolia.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
}'

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


List Multisig Confirmations


Returns the list of confirmations for the multi-signature transaction associated with the given Safe transaction hash

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-sepolia.safe.global/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_14
{
_14
"count": 1,
_14
"next": null,
_14
"previous": null,
_14
"results": [
_14
{
_14
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_14
"submissionDate": "2024-06-26T14:57:15.504003Z",
_14
"transactionHash": null,
_14
"signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
_14
"signatureType": "ETH_SIGN"
_14
}
_14
]
_14
}


Confirm Multisig Transaction


Adds a new confirmation to the pending multi-signature transaction associated with the given Safe transaction hash. Multiple signatures can be submitted at once. This endpoint does not support the use of delegates to make transactions 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-sepolia.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
}'

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
{
_10
"signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
_10
}


List Transactions


Returns all the executed transactions for a given Safe address. The list has different structures depending on the transaction type:

- Multisig Transactions for a Safe. tx_type=MULTISIG_TRANSACTION.

- Module Transactions for a Safe. tx_type=MODULE_TRANSACTION

- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. tx_type=ETHEREUM_TRANSACTION

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 A list with every element with the structure of one of these transactiontypes - object

application/json

Success
created
string

executionDate - required
string

blockNumber - required
integer

isSuccessful
boolean

transactionHash - required
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId - required
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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_72
{
_72
"count": 1,
_72
"next": null,
_72
"previous": null,
_72
"results": [
_72
{
_72
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_72
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
_72
"value": "50000000000000",
_72
"data": null,
_72
"operation": 0,
_72
"gasToken": "0x0000000000000000000000000000000000000000",
_72
"safeTxGas": 0,
_72
"baseGas": 0,
_72
"gasPrice": "0",
_72
"refundReceiver": "0x0000000000000000000000000000000000000000",
_72
"nonce": 0,
_72
"executionDate": "2024-06-26T15:41:48Z",
_72
"submissionDate": "2024-06-26T15:18:33.817634Z",
_72
"modified": "2024-06-26T15:41:49.400858Z",
_72
"blockNumber": 6191662,
_72
"transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
_72
"safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
_72
"proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_72
"executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_72
"isExecuted": true,
_72
"isSuccessful": true,
_72
"ethGasPrice": "61733665357",
_72
"maxFeePerGas": "131260008170",
_72
"maxPriorityFeePerGas": "1000000000",
_72
"gasUsed": 91398,
_72
"fee": "5642333546299086",
_72
"origin": "{}",
_72
"dataDecoded": null,
_72
"confirmationsRequired": 2,
_72
"confirmations": [
_72
{
_72
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_72
"submissionDate": "2024-06-26T15:18:33.901378Z",
_72
"transactionHash": null,
_72
"signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
_72
"signatureType": "ETH_SIGN"
_72
},
_72
{
_72
"owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_72
"submissionDate": "2024-06-26T15:27:29.512252Z",
_72
"transactionHash": null,
_72
"signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
_72
"signatureType": "ETH_SIGN"
_72
}
_72
],
_72
"trusted": true,
_72
"signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
_72
"transfers": [
_72
{
_72
"type": "ETHER_TRANSFER",
_72
"executionDate": "2024-06-26T15:41:48Z",
_72
"blockNumber": 6191662,
_72
"transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
_72
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
_72
"value": "50000000000000",
_72
"tokenId": null,
_72
"tokenAddress": null,
_72
"transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
_72
"tokenInfo": null,
_72
"from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
_72
}
_72
],
_72
"txType": "MULTISIG_TRANSACTION"
_72
}
_72
]
_72
}


List Incoming Transfers


Returns incoming ether/tokens transfers for a Safe. Only 1000 newest transfers will be returned.

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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_20
{
_20
"count": 1,
_20
"next": null,
_20
"previous": null,
_20
"results": [
_20
{
_20
"type": "ETHER_TRANSFER",
_20
"executionDate": "2024-06-25T11:19:00Z",
_20
"blockNumber": 6183150,
_20
"transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
_20
"to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_20
"value": "10000000000000000",
_20
"tokenId": null,
_20
"tokenAddress": null,
_20
"transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
_20
"tokenInfo": null,
_20
"from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
_20
}
_20
]
_20
}


List a Safe's Module Transactions


Returns all the transactions executed from modules given a Safe address

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 - required
integer

isSuccessful
boolean

transactionHash - required
string

safe - required
string

module - required
string

to - required
string

value - required
string

data - required
string

operation - required
integer

dataDecoded
string

moduleTransactionId - required
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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_22
{
_22
"count": 1,
_22
"next": null,
_22
"previous": null,
_22
"results": [
_22
{
_22
"created": "2024-07-24T20:54:48Z",
_22
"executionDate": "2024-07-24T20:54:48Z",
_22
"blockNumber": 6369595,
_22
"isSuccessful": true,
_22
"transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
_22
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_22
"module": "0x9085149079b87E32178669097bc82D341CB65678",
_22
"to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_22
"value": "10000000000",
_22
"data": "0x00",
_22
"operation": 0,
_22
"dataDecoded": null,
_22
"moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
_22
}
_22
]
_22
}


List a Safe's Multisig Transactions


Returns all the multi-signature transactions for a given Safe address. 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_57
{
_57
"count": 1,
_57
"next": null,
_57
"previous": null,
_57
"results": [
_57
{
_57
"safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_57
"to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
_57
"value": "50000000000000",
_57
"data": null,
_57
"operation": 0,
_57
"gasToken": "0x0000000000000000000000000000000000000000",
_57
"safeTxGas": 0,
_57
"baseGas": 0,
_57
"gasPrice": "0",
_57
"refundReceiver": "0x0000000000000000000000000000000000000000",
_57
"nonce": 0,
_57
"executionDate": "2024-06-26T15:41:48Z",
_57
"submissionDate": "2024-06-26T15:18:33.817634Z",
_57
"modified": "2024-06-26T15:41:49.400858Z",
_57
"blockNumber": 6191662,
_57
"transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
_57
"safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
_57
"proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_57
"executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_57
"isExecuted": true,
_57
"isSuccessful": true,
_57
"ethGasPrice": "61733665357",
_57
"maxFeePerGas": "131260008170",
_57
"maxPriorityFeePerGas": "1000000000",
_57
"gasUsed": 91398,
_57
"fee": "5642333546299086",
_57
"origin": "{}",
_57
"dataDecoded": null,
_57
"confirmationsRequired": 2,
_57
"confirmations": [
_57
{
_57
"owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_57
"submissionDate": "2024-06-26T15:18:33.901378Z",
_57
"transactionHash": null,
_57
"signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
_57
"signatureType": "ETH_SIGN"
_57
},
_57
{
_57
"owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_57
"submissionDate": "2024-06-26T15:27:29.512252Z",
_57
"transactionHash": null,
_57
"signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
_57
"signatureType": "ETH_SIGN"
_57
}
_57
],
_57
"trusted": true,
_57
"signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
_57
}
_57
],
_57
"countUniqueNonce": 1
_57
}


Create Multisig Transaction


Creates a multi-signature transaction for a given Safe account 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
{
_10
"safeTxGas": "45683"
_10
}


Estimate Gas Costs for a Multisig Transaction


Returns the estimated safeTxGas for a given Safe address and multi-signature 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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \
_10
-d '{
_10
"to": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_10
"value": "0",
_10
"data": "0x8d80ff0a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004f6006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d0000000000000000000000000000000000000000000c685fa11e01ec80000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004087c025200000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f2f400c138f9fb900576263af0bc7fcde2b1b8a80000000000000000000000004f3a120e72c76c22ae802d129f599bfdbc31cb810000000000000000000000000000000000000000000c685fa11e01ec8000000000000000000000000000000000000000000000000000000000000da41c43c100000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064eb5625d90000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000c685fa11e01ec800000000000000000000000000000000000000000000000000000000000000080000000000000000000000089b78cfa322f6c5de0abceecab66aee45393cc5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d00000000000000000000000000000000000000000000000000000da475abf0000000000000000000000000000000000000000000000000000000000065575cda00000000000000000000",
_10
"operation": 0
_10
}'

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


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


List Transfers


Returns the list of token transfers for a given Safe address. Only 1000 newest transfers will be returned.

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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_20
{
_20
"count": 1,
_20
"next": null,
_20
"previous": null,
_20
"results": [
_20
{
_20
"type": "ETHER_TRANSFER",
_20
"executionDate": "2024-07-24T20:54:48Z",
_20
"blockNumber": 6369595,
_20
"transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
_20
"to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_20
"value": "10000000000",
_20
"tokenId": null,
_20
"tokenAddress": null,
_20
"transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
_20
"tokenInfo": null,
_20
"from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
_20
}
_20
]
_20
}


Get Transfer


Returns a token transfer associated with the given 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-sepolia.safe.global/api/v1/transfer/3b3b57b3 \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_13
{
_13
"type": "ETHER_TRANSFER",
_13
"executionDate": "2024-07-24T20:54:48Z",
_13
"blockNumber": 6369595,
_13
"transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
_13
"to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
_13
"value": "10000000000",
_13
"tokenId": null,
_13
"tokenAddress": null,
_13
"transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
_13
"tokenInfo": null,
_13
"from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
_13
}


Modules

List Safes that use a Specific Module


Returns the list of Safes that have the provided module 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
{
_10
"safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
_10
}


Owners

List Safes from a Specific Owner


Returns the list of Safe accounts that have the given address as their 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_13
{
_13
"safes": [
_13
"0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
_13
"0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
_13
"0x25D641a9eE275CE94b64bE1227e610b77e776522",
_13
"0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
_13
"0xCfF743C4445eAd58105a793B34eB02125e830dB0",
_13
"0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
_13
"0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
_13
"0x1f01FC62f168099493705bDF7A05b539946832bc",
_13
"0x5298A93734C3D979eF1f23F78eBB871879A21F22"
_13
]
_13
}


4337

Get Safe Operation


Returns a SafeOperation given its Safe operation hash

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

callGasLimit - 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-sepolia.safe.global/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_35
{
_35
"created": "2024-07-22T10:00:18.892702Z",
_35
"modified": "2024-07-22T10:00:18.892702Z",
_35
"safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
_35
"validAfter": null,
_35
"validUntil": null,
_35
"moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
_35
"confirmations": [
_35
{
_35
"created": "2024-07-22T10:00:18.898708Z",
_35
"modified": "2024-07-22T10:00:18.898708Z",
_35
"owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
_35
"signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_35
"signatureType": "CONTRACT_SIGNATURE"
_35
}
_35
],
_35
"preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_35
"userOperation": {
_35
"ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
_35
"sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
_35
"userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
_35
"nonce": 0,
_35
"initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_35
"callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_35
"callGasLimit": 198268,
_35
"verificationGasLimit": 3867576,
_35
"preVerificationGas": 110646,
_35
"maxFeePerGas": 36776375378,
_35
"maxPriorityFeePerGas": 199436407,
_35
"paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
_35
"paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
_35
"signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_35
"entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
_35
}
_35
}


Get the list of confirmations for a multisig transaction


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

created - required
string

modified - required
string

owner - required
string

signature - required
string

signatureType
string



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

Sample Request

Try it on Swagger

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_14
{
_14
"count": 1,
_14
"next": null,
_14
"previous": null,
_14
"results": [
_14
{
_14
"created": "2024-07-22T10:00:18.898708Z",
_14
"modified": "2024-07-22T10:00:18.898708Z",
_14
"owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
_14
"signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_14
"signatureType": "CONTRACT_SIGNATURE"
_14
}
_14
]
_14
}


Add a confirmation for a 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/safe-operations/{safe_operation_hash}/confirmations/

Sample Request

Try it on Swagger

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


List Safe Operations


Returns the list of SafeOperations for a given Safe account

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

callGasLimit - 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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_42
{
_42
"count": 1,
_42
"next": null,
_42
"previous": null,
_42
"results": [
_42
{
_42
"created": "2024-07-22T10:00:18.892702Z",
_42
"modified": "2024-07-22T10:00:18.892702Z",
_42
"safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
_42
"validAfter": null,
_42
"validUntil": null,
_42
"moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
_42
"confirmations": [
_42
{
_42
"created": "2024-07-22T10:00:18.898708Z",
_42
"modified": "2024-07-22T10:00:18.898708Z",
_42
"owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
_42
"signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_42
"signatureType": "CONTRACT_SIGNATURE"
_42
}
_42
],
_42
"preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_42
"userOperation": {
_42
"ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
_42
"sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
_42
"userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
_42
"nonce": 0,
_42
"initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_42
"callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_42
"callGasLimit": 198268,
_42
"verificationGasLimit": 3867576,
_42
"preVerificationGas": 110646,
_42
"maxFeePerGas": 36776375378,
_42
"maxPriorityFeePerGas": 199436407,
_42
"paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
_42
"paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
_42
"signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_42
"entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
_42
}
_42
}
_42
]
_42
}


Create Safe Operation


Adds a new SafeOperation for a given Safe account

Request Body

nonce - required
integer

initCode - required
string

callData - required
string

callGasLimit - 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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
_19
-H "Accept: application/json" \
_19
-H "content-type: application/json" \
_19
-d '{
_19
"nonce": 10,
_19
"initCode": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000a97000000000000000000000000000000000000000000000000000000000000001e4b63e800d000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb0000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c6b82ba149cfa113f8f48d5e3b1f78e933e16dfd00000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_19
"callData": "0x7bb3742800000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b52600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000264001c7d4b196cb0c7b01d743fbc6116a902379c723800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000b531870897eb944799239fa5485792ba495a741100000000000000000000000000000000000000000000000000000000000186a0001c7d4b196cb0c7b01d743fbc6116a902379c723800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000b531870897eb944799239fa5485792ba495a741100000000000000000000000000000000000000000000000000000000000186a0001c7d4b196cb0c7b01d743fbc6116a902379c723800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000b531870897eb944799239fa5485792ba495a741100000000000000000000000000000000000000000000000000000000000186a0001c7d4b196cb0c7b01d743fbc6116a902379c723800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000b531870897eb944799239fa5485792ba495a741100000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_19
"callGasLimit": 140240,
_19
"verificationGasLimit": 542895,
_19
"preVerificationGas": 66374,
_19
"maxFeePerGas": 51026511147,
_19
"maxPriorityFeePerGas": 1380000000,
_19
"paymasterAndData": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d000000000000000000000000000000000000000000000000000000006633b1a7000000000000000000000000000000000000000000000000000000000000000066a61c76c14b64bbe67a7c45c5bdc30c890bfde5b9cb66bfdca69d404f9aeb7a0e9a6e6391030f9cce5e64cab2e1f733c63c5a6c88867bde4bbd01be03cf6fa41b",
_19
"signature": "0xae31da115daa589fa3cee016c756d191d4140fc0eb30c1565cdddcad35068300669abda9c56e1c5886d72c599e1af29fc70eedd16be72109aa593699661482121c",
_19
"entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
_19
"validAfter": "2024-02-23T04:40:36.000Z",
_19
"validUntil": "2024-07-11T02:00:36.000Z",
_19
"moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037"
_19
}'

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
Empty Response


List User Operations


Returns the list of UserOperations for a given Safe account

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

callGasLimit - 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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_42
{
_42
"count": 1,
_42
"next": null,
_42
"previous": null,
_42
"results": [
_42
{
_42
"ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
_42
"sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
_42
"userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
_42
"nonce": 0,
_42
"initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_42
"callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_42
"callGasLimit": 198268,
_42
"verificationGasLimit": 3867576,
_42
"preVerificationGas": 110646,
_42
"maxFeePerGas": 36776375378,
_42
"maxPriorityFeePerGas": 199436407,
_42
"paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
_42
"paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
_42
"signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_42
"entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
_42
"safeOperation": {
_42
"created": "2024-07-22T10:00:18.892702Z",
_42
"modified": "2024-07-22T10:00:18.892702Z",
_42
"safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
_42
"validAfter": null,
_42
"validUntil": null,
_42
"moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
_42
"confirmations": [
_42
{
_42
"created": "2024-07-22T10:00:18.898708Z",
_42
"modified": "2024-07-22T10:00:18.898708Z",
_42
"owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
_42
"signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_42
"signatureType": "CONTRACT_SIGNATURE"
_42
}
_42
],
_42
"preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
_42
}
_42
}
_42
]
_42
}


Get User Operation


Returns a UserOperation given its user operation hash

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

callGasLimit - 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_35
{
_35
"ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
_35
"sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
_35
"userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
_35
"nonce": 0,
_35
"initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_35
"callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
_35
"callGasLimit": 198268,
_35
"verificationGasLimit": 3867576,
_35
"preVerificationGas": 110646,
_35
"maxFeePerGas": 36776375378,
_35
"maxPriorityFeePerGas": 199436407,
_35
"paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
_35
"paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
_35
"signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_35
"entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
_35
"safeOperation": {
_35
"created": "2024-07-22T10:00:18.892702Z",
_35
"modified": "2024-07-22T10:00:18.892702Z",
_35
"safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
_35
"validAfter": null,
_35
"validUntil": null,
_35
"moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
_35
"confirmations": [
_35
{
_35
"created": "2024-07-22T10:00:18.898708Z",
_35
"modified": "2024-07-22T10:00:18.898708Z",
_35
"owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
_35
"signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
_35
"signatureType": "CONTRACT_SIGNATURE"
_35
}
_35
],
_35
"preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
_35
}
_35
}


Safes

Get Safe Status


Returns detailed information of a given Safe account

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_18
{
_18
"address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
_18
"nonce": 6,
_18
"threshold": 2,
_18
"owners": [
_18
"0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_18
"0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
_18
],
_18
"masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
_18
"modules": [
_18
"0x9085149079b87E32178669097bc82D341CB65678",
_18
"0xFBbFe0716F25045975f193cccBDbE2a995840657",
_18
"0xB4F5e59987549a2586976e8957962dBD54a26FD0"
_18
],
_18
"fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
_18
"guard": "0x0000000000000000000000000000000000000000",
_18
"version": "1.3.0+L2"
_18
}


List a Safe's Balances (Deprecated)


Get balance for Ether and ERC20 tokens of a given Safe account

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-sepolia.safe.global/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_19
[
_19
// Native coin (Sepolia ETH):
_19
{
_19
"tokenAddress": null,
_19
"token": null,
_19
"balance": "9899990000000000"
_19
},
_19
// ERC20 token:
_19
{
_19
"tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
_19
"token": {
_19
"name": "SampleToken",
_19
"symbol": "ST",
_19
"decimals": 18,
_19
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
_19
},
_19
"balance": "10000000000000000000"
_19
}
_19
]


Get Safe Creation Status


Returns detailed information on the Safe creation transaction of a given Safe account

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

callGasLimit - 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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_57
{
_57
"created": "2024-06-25T11:18:48Z",
_57
"creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_57
"transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
_57
"factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
_57
"masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
_57
"setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
_57
"dataDecoded": {
_57
"method": "setup",
_57
"parameters": [
_57
{
_57
"name": "_owners",
_57
"type": "address[]",
_57
"value": [
_57
"0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
_57
"0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
_57
]
_57
},
_57
{
_57
"name": "_threshold",
_57
"type": "uint256",
_57
"value": "2"
_57
},
_57
{
_57
"name": "to",
_57
"type": "address",
_57
"value": "0x0000000000000000000000000000000000000000"
_57
},
_57
{
_57
"name": "data",
_57
"type": "bytes",
_57
"value": "0x"
_57
},
_57
{
_57
"name": "fallbackHandler",
_57
"type": "address",
_57
"value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
_57
},
_57
{
_57
"name": "paymentToken",
_57
"type": "address",
_57
"value": "0x0000000000000000000000000000000000000000"
_57
},
_57
{
_57
"name": "payment",
_57
"type": "uint256",
_57
"value": "0"
_57
},
_57
{
_57
"name": "paymentReceiver",
_57
"type": "address",
_57
"value": "0x0000000000000000000000000000000000000000"
_57
}
_57
]
_57
},
_57
"userOperation": null
_57
}


Get Safe Balances


Get paginated balances for Ether and ERC20 tokens. The maximum limit allowed is 200.

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
tokenAddress
string

name - required
string

symbol - required
string

decimals - required
integer

logoUri - required
string

balance
string




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

Sample Request

Try it on Swagger

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_19
[
_19
// Native coin (Sepolia ETH):
_19
{
_19
"tokenAddress": null,
_19
"token": null,
_19
"balance": "9899990000000000"
_19
},
_19
// ERC20 token:
_19
{
_19
"tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
_19
"token": {
_19
"name": "SampleToken",
_19
"symbol": "ST",
_19
"decimals": 18,
_19
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
_19
},
_19
"balance": "10000000000000000000"
_19
}
_19
]


List Collectibles


Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account. The maximum limit allowed is 10.

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-sepolia.safe.global/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
_10
-H "Accept: application/json" \
_10
-H "content-type: application/json" \

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_19
{
_19
"count": 1,
_19
"next": null,
_19
"previous": null,
_19
"results": [
_19
{
_19
"address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
_19
"tokenName": "SampleNft",
_19
"tokenSymbol": "SN",
_19
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
_19
"id": "1",
_19
"uri": null,
_19
"name": null,
_19
"description": null,
_19
"imageUri": null,
_19
"metadata": {}
_19
}
_19
]
_19
}


Tokens

List Tokens


Returns the list of tokens supported in the Safe Transaction Service

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_17
{
_17
"count": 1846,
_17
"next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
_17
"previous": null,
_17
"results": [
_17
{
_17
"type": "ERC20",
_17
"address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
_17
"name": "0x5555.com",
_17
"symbol": "0x5555.com",
_17
"decimals": 18,
_17
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
_17
"trusted": false
_17
}
_17
// ...
_17
]
_17
}


Get a Specific Token's Information


Returns detailed information on a given token supported in the Safe Transaction Service

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
curl
TypeScript

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

This snippet shows a sample request on Ethereum Sepolia. Please click here to copy the base URL for Polygon and update it in your request.

Sample Response


_10
{
_10
"type": "ERC20",
_10
"address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
_10
"name": "0x5555.com",
_10
"symbol": "0x5555.com",
_10
"decimals": 18,
_10
"logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
_10
"trusted": false
_10
}


Was this page helpful?