Safe (Gnosis Safe) transactions API
The transactions API from Safe (Gnosis Safe) — 13 operation(s) for transactions.
The transactions API from Safe (Gnosis Safe) — 13 operation(s) for transactions.
openapi: 3.1.0
info:
title: Safe Transaction Service 4337 transactions API
version: 6.3.0
description: API to keep track of transactions sent via Safe smart contracts
tags:
- name: transactions
paths:
/tx-service/eth/api/v1/module-transaction/{module_transaction_id}:
get:
operationId: module_transaction_retrieve
description: Returns a transaction executed from a module given its associated module transaction ID
parameters:
- in: path
name: module_transaction_id
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeModuleTransactionResponse'
description: ''
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Invalid moduleTransactionId
'404':
description: ModuleTransaction does not exist
path: /tx-service/eth/api/v1/module-transaction/{module_transaction_id}
title: Get Module Transaction
additionalInfo: ''
/tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/:
get:
operationId: multisig_transactions_retrieve
description: Returns a multi-signature transaction given its Safe transaction hash
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
deprecated: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigTransactionResponse'
description: ''
path: /tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/
title: ''
additionalInfo: ''
delete:
operationId: multisig_transactions_destroy
description: "Removes the queued but not executed multi-signature transaction associated with the given Safe transaction hash.\nOnly the proposer or the delegate who proposed the transaction can delete it.\nIf the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.\nAn EOA is required to sign the following EIP-712 data:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n {\"name\": \"verifyingContract\", \"type\": \"address\"},\n ],\n \"DeleteRequest\": [\n {\"name\": \"safeTxHash\", \"type\": \"bytes32\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"DeleteRequest\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n \"verifyingContract\": safe_address,\n },\n \"message\": {\n \"safeTxHash\": safe_tx_hash,\n \"totp\": totp,\n },\n}\n```\n\n`totp` parameter is calculated with `T0=0` and `Tx=3600`. `totp` is calculated by taking the\nUnix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)"
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
deprecated: true
responses:
'204':
description: Deleted
'400':
description: Error processing data
'404':
description: Transaction not found
path: /tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/
title: ''
additionalInfo: ''
/tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/:
get:
operationId: multisig_transactions_confirmations_list
description: 'Returns the list of confirmations for the multi-signature transaction associated with
the given Safe transaction hash'
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeMultisigConfirmationResponseList'
description: ''
'400':
description: Invalid data
path: /tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/
title: List Multisig Confirmations
additionalInfo: ''
post:
operationId: multisig_transactions_confirmations_create
description: '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.'
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
tags:
- transactions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigConfirmation'
required: true
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'201':
description: Created
'400':
description: Malformed data
'422':
description: Error processing data
path: /tx-service/eth/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/
title: Confirm Multisig Transaction
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/all-transactions/:
get:
operationId: safes_all_transactions_list
description: '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`
Ordering_fields: ["timestamp"] eg: `-timestamp` (default one) or `timestamp`
Note: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done
using the `Transaction Hash`, and due to that the number of relevant transactions with the same
`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions
with the same `Transaction Hash`, `count` of the endpoint will be 1
but there will be 2 transactions in the list.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
deprecated: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedAllTransactionsSchemaList'
description: A list with every element with the structure of one of these transactiontypes
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Ordering field is not valid
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Checksum address validation failed
path: /tx-service/eth/api/v1/safes/{address}/all-transactions/
title: ''
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/incoming-transfers/:
get:
operationId: safes_incoming_transfers_list
description: 'Returns incoming ether/tokens transfers for a Safe.
Only 1000 newest transfers will be returned.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: _from
schema:
type: string
- in: query
name: block_number
schema:
type: number
- in: query
name: block_number__gt
schema:
type: number
- in: query
name: block_number__lt
schema:
type: number
- in: query
name: execution_date__gte
schema:
type: string
format: date-time
- in: query
name: execution_date__lte
schema:
type: string
format: date-time
- in: query
name: execution_date__gt
schema:
type: string
format: date-time
- in: query
name: execution_date__lt
schema:
type: string
format: date-time
- in: query
name: to
schema:
type: string
- in: query
name: token_address
schema:
type: string
- in: query
name: transaction_hash
schema:
type: string
- in: query
name: value
schema:
type: number
- in: query
name: value__gt
schema:
type: number
- in: query
name: value__lt
schema:
type: number
- in: query
name: erc20
schema:
type: boolean
- in: query
name: erc721
schema:
type: boolean
- in: query
name: ether
schema:
type: boolean
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTransferWithTokenInfoResponseList'
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Safe address checksum not valid
path: /tx-service/eth/api/v1/safes/{address}/incoming-transfers/
title: List Incoming Transfers
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/module-transactions/:
get:
operationId: safes_module_transactions_list
description: Returns all the transactions executed from modules given a Safe address
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: safe
schema:
type: string
- in: query
name: module
schema:
type: string
- in: query
name: to
schema:
type: string
- in: query
name: operation
schema:
type: integer
x-spec-enum-id: 73baf6048b75e41c
enum:
- 0
- 1
- 2
description: '* `0` - CALL
* `1` - DELEGATE_CALL
* `2` - CREATE'
- in: query
name: failed
schema:
type: boolean
- in: query
name: block_number
schema:
type: number
- in: query
name: block_number__gt
schema:
type: number
- in: query
name: block_number__lt
schema:
type: number
- in: query
name: transaction_hash
schema:
type: string
format: byte
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeModuleTransactionResponseList'
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Checksum address validation failed
path: /tx-service/eth/api/v1/safes/{address}/module-transactions/
title: List a Safe's Module Transactions
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/multisig-transactions/:
get:
operationId: safes_multisig_transactions_list
description: 'Returns all the multi-signature transactions for a given Safe address.
By default, only ``trusted`` multisig transactions are returned.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: failed
schema:
type: boolean
- in: query
name: modified__lt
schema:
type: string
format: date-time
- in: query
name: modified__gt
schema:
type: string
format: date-time
- in: query
name: modified__lte
schema:
type: string
format: date-time
- in: query
name: modified__gte
schema:
type: string
format: date-time
- in: query
name: nonce__lt
schema:
type: number
- in: query
name: nonce__gt
schema:
type: number
- in: query
name: nonce__lte
schema:
type: number
- in: query
name: nonce__gte
schema:
type: number
- in: query
name: nonce
schema:
type: number
- in: query
name: safe_tx_hash
schema:
type: string
format: byte
- in: query
name: to
schema:
type: string
- in: query
name: value__lt
schema:
type: number
- in: query
name: value__gt
schema:
type: number
- in: query
name: value
schema:
type: number
- in: query
name: executed
schema:
type: boolean
- in: query
name: has_confirmations
schema:
type: boolean
- in: query
name: trusted
schema:
type: boolean
- in: query
name: execution_date__gte
schema:
type: string
format: date-time
- in: query
name: execution_date__lte
schema:
type: string
format: date-time
- in: query
name: submission_date__gte
schema:
type: string
format: date-time
- in: query
name: submission_date__lte
schema:
type: string
format: date-time
- in: query
name: transaction_hash
schema:
type:
- string
- 'null'
format: byte
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
deprecated: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSafeMultisigTransactionResponseList'
description: ''
'400':
description: Invalid data
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Invalid ethereum address
path: /tx-service/eth/api/v1/safes/{address}/multisig-transactions/
title: ''
additionalInfo: ''
post:
operationId: safes_multisig_transactions_create
description: 'Creates a multi-signature transaction for a given Safe account with its confirmations and
retrieves all the information related.'
parameters:
- in: path
name: address
schema:
type: string
required: true
tags:
- transactions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigTransaction'
required: true
security:
- cookieAuth: []
- tokenAuth: []
- {}
deprecated: true
responses:
'201':
description: Created or signature updated
'400':
description: Invalid data
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Invalid ethereum address | User is not an owner | Invalid safeTxHash |Invalid signature | Nonce already executed | Sender is not an owner
path: /tx-service/eth/api/v1/safes/{address}/multisig-transactions/
title: ''
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/multisig-transactions/estimations/:
post:
operationId: safes_multisig_transactions_estimations_create
description: 'Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction.
Estimation is disabled for L2 networks, as this is only required for Safes with version < 1.3.0
and those versions are not supported in L2 networks.'
parameters:
- in: path
name: address
schema:
type: string
required: true
tags:
- transactions
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigTransactionEstimate'
required: true
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigTransactionEstimateResponse'
description: ''
'400':
description: Data not valid
'404':
description: Safe not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Tx not valid
path: /tx-service/eth/api/v1/safes/{address}/multisig-transactions/estimations/
title: Estimate Gas Costs for a Multisig Transaction
additionalInfo: ''
/tx-service/eth/api/v1/safes/{address}/transfers/:
get:
operationId: safes_transfers_list
description: 'Returns the list of token transfers for a given Safe address.
Only 1000 newest transfers will be returned.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: _from
schema:
type: string
- in: query
name: block_number
schema:
type: number
- in: query
name: block_number__gt
schema:
type: number
- in: query
name: block_number__lt
schema:
type: number
- in: query
name: execution_date__gte
schema:
type: string
format: date-time
- in: query
name: execution_date__lte
schema:
type: string
format: date-time
- in: query
name: execution_date__gt
schema:
type: string
format: date-time
- in: query
name: execution_date__lt
schema:
type: string
format: date-time
- in: query
name: to
schema:
type: string
- in: query
name: token_address
schema:
type: string
- in: query
name: transaction_hash
schema:
type: string
- in: query
name: value
schema:
type: number
- in: query
name: value__gt
schema:
type: number
- in: query
name: value__lt
schema:
type: number
- in: query
name: erc20
schema:
type: boolean
- in: query
name: erc721
schema:
type: boolean
- in: query
name: ether
schema:
type: boolean
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTransferWithTokenInfoResponseList'
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/CodeErrorResponse'
description: Safe address checksum not valid
path: /tx-service/eth/api/v1/safes/{address}/transfers/
title: List Transfers
additionalInfo: ''
/tx-service/eth/api/v1/transfer/{transfer_id}:
get:
operationId: transfer_retrieve
description: Returns a token transfer associated with the given transfer ID
parameters:
- in: path
name: transfer_id
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransferWithTokenInfoResponse'
description: ''
'400':
description: Invalid transferId
'404':
description: Transfer does not exist
path: /tx-service/eth/api/v1/transfer/{transfer_id}
title: Get Transfer
additionalInfo: ''
/tx-service/eth/api/v2/multisig-transactions/{safe_tx_hash}/:
get:
operationId: multisig_transactions_retrieve_2
description: Returns a multi-signature transaction given its Safe transaction hash
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SafeMultisigTransactionResponseSerializerV2'
description: ''
path: /tx-service/eth/api/v2/multisig-transactions/{safe_tx_hash}/
title: Get Multisig Transaction
additionalInfo: ''
delete:
operationId: multisig_transactions_destroy_2
description: "Removes the queued but not executed multi-signature transaction associated with the given Safe transaction hash.\nOnly the proposer or the delegate who proposed the transaction can delete it.\nIf the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.\nAn EOA is required to sign the following EIP-712 data:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n {\"name\": \"verifyingContract\", \"type\": \"address\"},\n ],\n \"DeleteRequest\": [\n {\"name\": \"safeTxHash\", \"type\": \"bytes32\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"DeleteRequest\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n \"verifyingContract\": safe_address,\n },\n \"message\": {\n \"safeTxHash\": safe_tx_hash,\n \"totp\": totp,\n },\n}\n```\n\n`totp` parameter is calculated with `T0=0` and `Tx=3600`. `totp` is calculated by taking the\nUnix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no decimals)"
parameters:
- in: path
name: safe_tx_hash
schema:
type: string
required: true
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'204':
description: No response body
path: /tx-service/eth/api/v2/multisig-transactions/{safe_tx_hash}/
title: Delete Queued Multisig Transaction
additionalInfo: ''
/tx-service/eth/api/v2/safes/{address}/all-transactions/:
get:
operationId: safes_all_transactions_list_2
description: '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`
Ordering_fields: ["timestamp"] eg: `-timestamp` (default one) or `timestamp`
Note: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done
using the `Transaction Hash`, and due to that the number of relevant transactions with the same
`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions
with the same `Transaction Hash`, `count` of the endpoint will be 1
but there will be 2 transactions in the list.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedAllTransactionsSchemaSerializerV2List'
description: ''
path: /tx-service/eth/api/v2/safes/{address}/all-transactions/
title: List Transactions
additionalInfo: ''
/tx-service/eth/api/v2/safes/{address}/multisig-transactions/:
get:
operationId: safes_multisig_transactions_list_2
description: 'Returns all the multi-signature transactions for a given Safe address.
By default, only ``trusted`` multisig transactions are returned.'
parameters:
- in: path
name: address
schema:
type: string
required: true
- in: query
name: failed
schema:
type: boolean
- in: query
name: modified__lt
schema:
type: string
format: date-time
- in: query
name: modified__gt
schema:
type: string
format: date-time
- in: query
name: modified__lte
schema:
type: string
format: date-time
- in: query
name: modified__gte
schema:
type: string
format: date-time
- in: query
name: nonce__lt
schema:
type: number
- in: query
name: nonce__gt
schema:
type: number
- in: query
name: nonce__lte
schema:
type: number
- in: query
name: nonce__gte
schema:
type: number
- in: query
name: nonce
schema:
type: number
- in: query
name: safe_tx_hash
schema:
type: string
format: byte
- in: query
name: to
schema:
type: string
- in: query
name: value__lt
schema:
type: number
- in: query
name: value__gt
schema:
type: number
- in: query
name: value
schema:
type: number
- in: query
name: executed
schema:
type: boolean
- in: query
name: has_confirmations
schema:
type: boolean
- in: query
name: trusted
schema:
type: boolean
- in: query
name: execution_date__gte
schema:
type: string
format: date-time
- in: query
name: execution_date__lte
schema:
type: string
format: date-time
- in: query
name: submission_date__gte
schema:
type: string
format: date-time
- in: query
name: submission_date__lte
schema:
type: string
format: date-time
- in: query
name: transaction_hash
schema:
type:
- string
- 'null'
format: byte
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: limit
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- name: offset
required: false
in: query
description: The initial index from which to return the results.
schema:
type: integer
tags:
- transactions
security:
- cookieAuth: []
- tokenAuth:
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gnosis-safe/refs/heads/main/openapi/gnosis-safe-transactions-api-openapi.yml