diff --git a/.github/scripts/generateApiReference.ts b/.github/scripts/generateApiReference.ts
index 1d02109e..912e2afc 100644
--- a/.github/scripts/generateApiReference.ts
+++ b/.github/scripts/generateApiReference.ts
@@ -2,14 +2,11 @@ const fs = require('fs')
const { capitalize } = require('lodash')
const YAML = require('yaml')
-const jsonFile = require('../../components/ApiReference/mainnet-swagger.json')
const pathsMetadata = require('../../components/ApiReference/paths-metadata.json')
const txServiceNetworks = require('../../components/ApiReference/tx-service-networks.json')
-const baseUrl = 'https://safe-transaction-sepolia.safe.global'
-
const curlify = (req: any) =>
- `curl -X ${req.method} https://safe-transaction-sepolia.safe.global/api${
+ `curl -X ${req.method} https://safe-transaction-${req.networkName}.safe.global/api${
req.url
} \\
-H "Accept: application/json" \\
@@ -147,11 +144,13 @@ const generateSampleApiResponse = async (
path: string,
pathWithParams: string,
method: string,
- requestBody: string
+ requestBody: string,
+ networkName: string
) => {
const fetch = await import('node-fetch')
let response: any
+ const baseUrl = `https://safe-transaction-${networkName}.safe.global`
const url = baseUrl + pathWithParams
if (method === 'get') {
response = await fetch.default(url).then(async res => {
@@ -200,26 +199,24 @@ const generateSampleApiResponse = async (
}
const slugify = (text: string) => text?.replace?.(/ /g, '-').replace(/\//g, '-')
-const resolveRef = (ref: string) => {
+const resolveRef = (swagger: any, ref: string) => {
const refName = ref.split('/').pop()
- return { refName, ...jsonFile.components.schemas[refName as string] }
+ return { refName, ...swagger.components.schemas[refName as string] }
}
-const resolveRefs = (obj: any) => {
+const resolveRefs = (swagger: any, obj: any) => {
if (typeof obj === 'object') {
for (const key in obj) {
if (key === '$ref') {
- obj = resolveRef(obj[key])
+ obj = resolveRef(swagger, obj[key])
} else {
- obj[key] = resolveRefs(obj[key])
+ obj[key] = resolveRefs(swagger, obj[key])
}
}
}
return obj
}
-const mainnetApiJson = resolveRefs(jsonFile)
-
const addMethodContext = (json: any) => ({
...json,
paths: Object.entries(json.paths).reduce((acc, [path, methods]) => {
@@ -243,31 +240,36 @@ const addMethodContext = (json: any) => ({
}, {})
})
-const getApiJson = async (url: string) => {
+const getApiJson = async (url: string, networkName: string) => {
const response = await fetch(url + '/schema/')
const yaml = await response.text()
const json = YAML.parse(yaml)
const withContext = addMethodContext(json)
fs.writeFileSync(
- './components/ApiReference/mainnet-swagger.json',
+ `./components/ApiReference/schemas/${networkName}-swagger.json`,
JSON.stringify(withContext, null, 2)
)
return withContext
}
-const generateMethodContent = (path: string, method: string) => {
- const _method = mainnetApiJson.paths[path][method]
+const generateMethodContent = (
+ swagger: any,
+ networkName: string,
+ path: string,
+ method: string
+) => {
+ const _method = swagger.paths[path][method]
const responses = Object.entries(_method.responses).map(
([code, { schema, ...data }]: [any, any]) => ({
code,
schema:
schema?.['$ref'] !== undefined
- ? resolveRef(schema['$ref'])
+ ? resolveRef(swagger, schema['$ref'])
: {
...schema,
items:
schema?.items?.['$ref'] !== undefined
- ? resolveRef(schema.items['$ref'])
+ ? resolveRef(swagger, schema.items['$ref'])
: schema?.items
},
...data
@@ -289,7 +291,8 @@ const generateMethodContent = (path: string, method: string) => {
const filePath = `./components/ApiReference/examples/${slugify(
path
)}-${method}`.replace('-api', '')
- const examplePath = filePath + '.ts'
+ const examplePath =
+ filePath.replace('examples', `examples/${networkName}`) + '.ts'
const sampleResponsePath = filePath + '.json'
const hasExample = fs.existsSync(examplePath)
const hasResponse = fs.existsSync(sampleResponsePath)
@@ -317,7 +320,7 @@ const generateMethodContent = (path: string, method: string) => {
// This is commented out, as we omit response generation for now.
// It is planned to move this into a separate script.
- // generateSampleApiResponse(path, pathWithParams + query, method, requestBody)
+ // generateSampleApiResponse(path, pathWithParams + query, method, requestBody, networkName)
const codeBlockWithinDescription = _method.description?.match(
/```[a-z]*\n[\s\S]*?\n```/
@@ -357,7 +360,7 @@ ${
hasExample && example !== 'export {}\n'
? `
\`\`\`js TypeScript
-// from ${examplePath.replace('./components/ApiReference/', '')}
+// from ${examplePath.replace('./components/ApiReference/', '../')}
\`\`\`
`
: ''
@@ -366,12 +369,12 @@ ${
${curlify({
url: pathWithParams,
method: method.toUpperCase(),
- body: requestBody
+ body: requestBody,
+ networkName
})}
\`\`\`
-
${
hasResponse && sampleResponse !== '{}'
@@ -391,25 +394,29 @@ ${sampleResponse}
`
}
-const generatePathContent = (path: string) =>
- `${Object.keys(mainnetApiJson.paths[path])
+const generatePathContent = (swagger: any, networkName: string, path: string) =>
+ `${Object.keys(swagger.paths[path])
.filter(method => method !== 'parameters')
- .map(method => generateMethodContent(path, method))
+ .map(method => generateMethodContent(swagger, networkName, path, method))
.join('\n')}`
-const generateCategoryContent = (category: {
- title: string
- paths: string[]
-}) => `
+const generateCategoryContent = (
+ swagger: any,
+ networkName: string,
+ category: {
+ title: string
+ paths: string[]
+ }
+) => `
## ${capitalize(category.title)}
-${category.paths.map(path => generatePathContent(path)).join('\n')}`
+${category.paths.map(path => generatePathContent(swagger, networkName, path)).join('\n')}`
-const getCategories = () => {
- const allMethods: any = Object.entries(mainnetApiJson.paths)
+const getCategories = (swagger: any) => {
+ const allMethods: any = Object.entries(swagger.paths)
.map(([k, v]: [any, any]) => Object.values(v))
.flat()
const allCategories = Array.from(
@@ -432,18 +439,17 @@ const getCategories = () => {
}))
}
-const generateMainContent = () => {
- const categories = getCategories().filter(
+const generateMainContent = (swagger: any, networkName: string) => {
+ const categories = getCategories(swagger).filter(
c => c.title !== 'about' && c.title !== 'notifications'
)
-
- return `import Path from './Path'
-import Hr from '../Hr'
-import SampleRequestHeader from './SampleRequestHeader'
-import Parameters from './Parameter'
-import NetworkSwitcher, { NetworkNotice } from './Network'
-import Responses from './Response'
-import Feedback from '../Feedback'
+ return `import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
import Grid from '@mui/material/Grid'
import Box from '@mui/material/Box'
import NextLink from 'next/link'
@@ -453,21 +459,25 @@ import Link from '@mui/material/Link'
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](../../core-api/transaction-service-supported-networks), at different endpoints.
+This service is available on [multiple networks](../../../core-api/transaction-service-supported-networks), at different endpoints.
-${categories.map(category => generateCategoryContent(category)).join('\n')}
+${categories.map(category => generateCategoryContent(swagger, networkName, category)).join('\n')}
`
}
const main = async () => {
- await getApiJson('https://safe-transaction-mainnet.safe.global')
txServiceNetworks.forEach(
async (network: { chainId: string; txServiceUrl: string }) => {
const networkName = network.txServiceUrl
.replace('https://safe-transaction-', '')
.split('.')[0]
+ // Download swagger schema and converts it from YAML to JSON.
+ const jsonFile = await getApiJson(network.txServiceUrl, networkName)
+ const resolvedJson = resolveRefs(jsonFile, jsonFile)
+
+ // Generate the page which will load the reference file, and parse it to generate the dynamic sidebar on the client side.
fs.writeFileSync(
`./pages/core-api/transaction-service-reference/${networkName}.mdx`,
`
@@ -475,12 +485,13 @@ const main = async () => {
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/${networkName}-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/${networkName}-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
@@ -493,13 +504,35 @@ export const getStaticProps = async () => {
{/* */}
`
)
+
+ // Generate the main reference file.
+ const mdxContent = generateMainContent(resolvedJson, networkName)
+ fs.writeFileSync(
+ `./components/ApiReference/generated/${networkName}-reference.mdx`,
+ mdxContent
+ )
+
+ // Replace Sepolia chainId in the example files.
+ const exampleFiles = fs
+ .readdirSync('./components/ApiReference/examples/sepolia')
+ .filter((file: string) => file.endsWith('.ts'))
+ exampleFiles.forEach((file: string) => {
+ const contents = fs.readFileSync(
+ `./components/ApiReference/examples/${file}`,
+ 'utf-8'
+ )
+ if (
+ !fs.existsSync(`./components/ApiReference/examples/${networkName}`)
+ ) {
+ fs.mkdirSync(`./components/ApiReference/examples/${networkName}`)
+ }
+ fs.writeFileSync(
+ `./components/ApiReference/examples/${networkName}/${file}`,
+ contents.replace('chainId: 11155111n', `chainId: ${network.chainId}n`)
+ )
+ })
}
)
- const mdxContent = generateMainContent()
- fs.writeFileSync(
- `./components/ApiReference/generated-reference.mdx`,
- mdxContent
- )
}
main()
diff --git a/components/ApiReference/ApiReference.tsx b/components/ApiReference/ApiReference.tsx
index 041d1dc9..87b0ec43 100644
--- a/components/ApiReference/ApiReference.tsx
+++ b/components/ApiReference/ApiReference.tsx
@@ -1,4 +1,4 @@
-import { useState } from 'react'
+import { useEffect, useState } from 'react'
import { useData } from 'nextra/ssg'
import Grid from '@mui/material/Grid'
import Dialog from '@mui/material/Dialog'
@@ -14,17 +14,27 @@ import ExpandLess from '@mui/icons-material/ExpandLess'
import TOC, { type Heading } from './TOC'
import { MDXComponents, useCurrentTocIndex } from '../../lib/mdx'
-import Mdx from './generated-reference.mdx'
import { NetworkProvider } from './Network'
import css from './styles.module.css'
-const renderedMdx =
-
const ApiReference: React.FC<{ networkName: string }> = ({ networkName }) => {
const { headings } = useData()
+ const [Mdx, setMdx] = useState | null>(null)
+ const renderedMdx = Mdx != null ? : null
const [isFilterDrawerOpen, setIsFilterDrawerOpen] = useState(false)
const currentIndex = useCurrentTocIndex(headings as Heading[], 100)
+ useEffect(() => {
+ void (async () => {
+ const { default: Component } = await import(
+ `./generated/${networkName}-reference.mdx`
+ )
+ setMdx(() => Component)
+ })()
+ }, [networkName])
+
return (
<>
diff --git a/components/ApiReference/Network.tsx b/components/ApiReference/Network.tsx
index 755a6ee1..48848292 100644
--- a/components/ApiReference/Network.tsx
+++ b/components/ApiReference/Network.tsx
@@ -7,9 +7,7 @@ import {
useContext
} from 'react'
import Link from 'next/link'
-import MuiLink from '@mui/material/Link'
import Select from '@mui/material/Select'
-import Box from '@mui/material/Box'
import MenuItem from '@mui/material/MenuItem'
import Grid from '@mui/material/Grid'
import Typography from '@mui/material/Typography'
@@ -17,7 +15,6 @@ import Button from '@mui/material/Button'
import GetAppIcon from '@mui/icons-material/GetApp'
import { capitalize } from 'lodash'
import { CopyToClipboard } from 'nextra/components'
-import Check from '@mui/icons-material/Check'
import txServiceNetworks from './tx-service-networks.json'
@@ -143,40 +140,4 @@ const NetworkSwitcher: React.FC = () => {
)
}
-export const NetworkNotice: React.FC = () => {
- const [network] = useContext(NetworkContext)
- const [copied, setCopied] = useState(false)
- return (
- network !== transactionServiceUrls[indexOfDefaultNetwork] && (
-
- This snippet shows a sample request on Ethereum Sepolia. Please{' '}
- {
- void navigator.clipboard.writeText(network)
- setCopied(true)
- setTimeout(() => {
- setCopied(false)
- }, 3000)
- }}
- >
- click here
- {' '}
-
- to copy the base URL for{' '}
- {capitalize(network?.split('-')[2]?.split('.')[0])} and update it in
- your request.
-
- )
- )
-}
-
export default NetworkSwitcher
diff --git a/components/ApiReference/examples/arbitrum/-v1-about--get.ts b/components/ApiReference/examples/arbitrum/-v1-about--get.ts
new file mode 100644
index 00000000..01692dcf
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/arbitrum/-v1-about-singletons--get.ts b/components/ApiReference/examples/arbitrum/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..0df7bc37
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/-v1-contracts--get.ts b/components/ApiReference/examples/arbitrum/-v1-contracts--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-contracts--get.ts
rename to components/ApiReference/examples/arbitrum/-v1-contracts--get.ts
diff --git a/components/ApiReference/examples/arbitrum/-v1-data-decoder--post.ts b/components/ApiReference/examples/arbitrum/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..aa412cf5
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..6b0468ea
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..0000e9dc
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/arbitrum/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/arbitrum/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..600b19de
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/arbitrum/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/arbitrum/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..278ac8ae
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..a3f1f04e
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..a5d4bc82
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..014aa9da
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..1dcb5c8e
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..81c6681e
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..8a16d624
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..2ca9cf07
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..feea204d
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/arbitrum/-v1-tokens--get.ts b/components/ApiReference/examples/arbitrum/-v1-tokens--get.ts
new file mode 100644
index 00000000..d0357e35
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/arbitrum/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/arbitrum/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..3a194398
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/arbitrum/-v1-user-operations-{user_operation_hash}--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-user-operations-{user_operation_hash}--get.ts
rename to components/ApiReference/examples/arbitrum/-v1-user-operations-{user_operation_hash}--get.ts
diff --git a/components/ApiReference/examples/arbitrum/-v2-delegates--get.ts b/components/ApiReference/examples/arbitrum/-v2-delegates--get.ts
new file mode 100644
index 00000000..c8ec8918
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/arbitrum/-v2-delegates--post.ts b/components/ApiReference/examples/arbitrum/-v2-delegates--post.ts
new file mode 100644
index 00000000..58c9c99b
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/arbitrum/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/arbitrum/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..3d75992b
--- /dev/null
+++ b/components/ApiReference/examples/arbitrum/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 42161n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/aurora/-v1-about--get.ts b/components/ApiReference/examples/aurora/-v1-about--get.ts
new file mode 100644
index 00000000..1f555843
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/aurora/-v1-about-singletons--get.ts b/components/ApiReference/examples/aurora/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..e1d294aa
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/aurora/-v1-contracts--get.ts b/components/ApiReference/examples/aurora/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/aurora/-v1-data-decoder--post.ts b/components/ApiReference/examples/aurora/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..2fc15948
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/aurora/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/aurora/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..456aa573
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/aurora/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/aurora/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..fc00765e
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/aurora/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/aurora/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..553f5627
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/aurora/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/aurora/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..0c6c69e2
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..1b17aee6
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..0fc5432a
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..c995d344
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..f930abb5
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..655401b7
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..752920b8
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..0b86d42c
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..24453515
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/aurora/-v1-tokens--get.ts b/components/ApiReference/examples/aurora/-v1-tokens--get.ts
new file mode 100644
index 00000000..b7454aac
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/aurora/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/aurora/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..f63bfe8e
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/aurora/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/aurora/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/aurora/-v2-delegates--get.ts b/components/ApiReference/examples/aurora/-v2-delegates--get.ts
new file mode 100644
index 00000000..001ee7d6
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/aurora/-v2-delegates--post.ts b/components/ApiReference/examples/aurora/-v2-delegates--post.ts
new file mode 100644
index 00000000..3202b01b
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/aurora/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/aurora/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..f816e50d
--- /dev/null
+++ b/components/ApiReference/examples/aurora/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1313161554n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/avalanche/-v1-about--get.ts b/components/ApiReference/examples/avalanche/-v1-about--get.ts
new file mode 100644
index 00000000..962376b6
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/avalanche/-v1-about-singletons--get.ts b/components/ApiReference/examples/avalanche/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..102b77c5
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/avalanche/-v1-contracts--get.ts b/components/ApiReference/examples/avalanche/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/avalanche/-v1-data-decoder--post.ts b/components/ApiReference/examples/avalanche/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..e21cf579
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..1cd0d98a
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..7a73ac7e
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/avalanche/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/avalanche/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..26ece702
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/avalanche/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/avalanche/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..bd319889
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..3f0709b2
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..298a09d6
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..c46af58c
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..d31068cf
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..8517673f
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..edd7577f
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..fe0ce6cb
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..b4985747
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/avalanche/-v1-tokens--get.ts b/components/ApiReference/examples/avalanche/-v1-tokens--get.ts
new file mode 100644
index 00000000..0fd89c7e
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/avalanche/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/avalanche/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..eadfe678
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/avalanche/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/avalanche/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/avalanche/-v2-delegates--get.ts b/components/ApiReference/examples/avalanche/-v2-delegates--get.ts
new file mode 100644
index 00000000..4387bf27
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/avalanche/-v2-delegates--post.ts b/components/ApiReference/examples/avalanche/-v2-delegates--post.ts
new file mode 100644
index 00000000..651a2c1b
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/avalanche/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/avalanche/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..8d2c4aa8
--- /dev/null
+++ b/components/ApiReference/examples/avalanche/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 43114n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-about--get.ts b/components/ApiReference/examples/base-sepolia/-v1-about--get.ts
new file mode 100644
index 00000000..d1c46446
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-about-singletons--get.ts b/components/ApiReference/examples/base-sepolia/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..df3c9b1f
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-contracts--get.ts b/components/ApiReference/examples/base-sepolia/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/base-sepolia/-v1-data-decoder--post.ts b/components/ApiReference/examples/base-sepolia/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..fefa52b5
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..ed2b1a2e
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..178a1319
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/base-sepolia/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..51078dc3
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/base-sepolia/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..312ef4a6
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..dfdf1921
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..c457e553
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..54a6a5fc
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..f4c555cb
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..99d3ad99
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..65894d57
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..05d7fe0a
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..3d1edd15
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-tokens--get.ts b/components/ApiReference/examples/base-sepolia/-v1-tokens--get.ts
new file mode 100644
index 00000000..b43d86d8
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/base-sepolia/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..63b761db
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/base-sepolia/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/base-sepolia/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/base-sepolia/-v2-delegates--get.ts b/components/ApiReference/examples/base-sepolia/-v2-delegates--get.ts
new file mode 100644
index 00000000..df21dfd9
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/base-sepolia/-v2-delegates--post.ts b/components/ApiReference/examples/base-sepolia/-v2-delegates--post.ts
new file mode 100644
index 00000000..3c1fdb44
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/base-sepolia/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/base-sepolia/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..bd950ac3
--- /dev/null
+++ b/components/ApiReference/examples/base-sepolia/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 84532n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/base/-v1-about--get.ts b/components/ApiReference/examples/base/-v1-about--get.ts
new file mode 100644
index 00000000..c906f952
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/base/-v1-about-singletons--get.ts b/components/ApiReference/examples/base/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..53ea139a
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/base/-v1-contracts--get.ts b/components/ApiReference/examples/base/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/base/-v1-data-decoder--post.ts b/components/ApiReference/examples/base/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..af42c24c
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/base/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/base/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..f788bbad
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/base/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/base/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..a55dec66
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/base/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/base/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..5a224d9a
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/base/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/base/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..3a59d668
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..f1de915e
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..9c5e7c22
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..99880ccf
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..794e67f5
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/base/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..9202db70
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..83167c8d
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..708d6bcf
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..d22283ea
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/base/-v1-tokens--get.ts b/components/ApiReference/examples/base/-v1-tokens--get.ts
new file mode 100644
index 00000000..bdc3533f
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/base/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/base/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..a9052644
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/base/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/base/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/base/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/base/-v2-delegates--get.ts b/components/ApiReference/examples/base/-v2-delegates--get.ts
new file mode 100644
index 00000000..bf5b184f
--- /dev/null
+++ b/components/ApiReference/examples/base/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/base/-v2-delegates--post.ts b/components/ApiReference/examples/base/-v2-delegates--post.ts
new file mode 100644
index 00000000..51d7f784
--- /dev/null
+++ b/components/ApiReference/examples/base/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/base/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/base/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..b021a390
--- /dev/null
+++ b/components/ApiReference/examples/base/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 8453n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/blast/-v1-about--get.ts b/components/ApiReference/examples/blast/-v1-about--get.ts
new file mode 100644
index 00000000..9fed565a
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/blast/-v1-about-singletons--get.ts b/components/ApiReference/examples/blast/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..84cd76d3
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/blast/-v1-contracts--get.ts b/components/ApiReference/examples/blast/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/blast/-v1-data-decoder--post.ts b/components/ApiReference/examples/blast/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..a064d9a5
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/blast/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/blast/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..324a63ed
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/blast/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/blast/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..1d3a756d
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/blast/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/blast/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..84af67df
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/blast/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/blast/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..784ba252
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..283c06b2
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..05ebe31c
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..2c72048d
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..3dedbe32
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..401ca5ab
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..7ce9894a
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..7be29465
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..cceb06be
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/blast/-v1-tokens--get.ts b/components/ApiReference/examples/blast/-v1-tokens--get.ts
new file mode 100644
index 00000000..5eb3b1b0
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/blast/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/blast/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..4c97458d
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/blast/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/blast/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/blast/-v2-delegates--get.ts b/components/ApiReference/examples/blast/-v2-delegates--get.ts
new file mode 100644
index 00000000..f797c901
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/blast/-v2-delegates--post.ts b/components/ApiReference/examples/blast/-v2-delegates--post.ts
new file mode 100644
index 00000000..2d64173e
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/blast/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/blast/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..3ed76cd7
--- /dev/null
+++ b/components/ApiReference/examples/blast/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 81457n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/bsc/-v1-about--get.ts b/components/ApiReference/examples/bsc/-v1-about--get.ts
new file mode 100644
index 00000000..d642138d
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/bsc/-v1-about-singletons--get.ts b/components/ApiReference/examples/bsc/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..697b221e
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/bsc/-v1-contracts--get.ts b/components/ApiReference/examples/bsc/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/bsc/-v1-data-decoder--post.ts b/components/ApiReference/examples/bsc/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..18f0db9b
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/bsc/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/bsc/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..976a5586
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/bsc/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/bsc/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..3d671e12
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/bsc/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/bsc/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..af7e570f
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/bsc/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/bsc/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..5828265e
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..fd5a7799
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..12b9cf0c
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..78c2938b
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..9fd28491
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..a1cb04f7
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..d081fdb5
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..8a75870b
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..86aac9f6
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/bsc/-v1-tokens--get.ts b/components/ApiReference/examples/bsc/-v1-tokens--get.ts
new file mode 100644
index 00000000..bea0a4d6
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/bsc/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/bsc/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..b4836fd1
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/bsc/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/bsc/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/bsc/-v2-delegates--get.ts b/components/ApiReference/examples/bsc/-v2-delegates--get.ts
new file mode 100644
index 00000000..2e7c802e
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/bsc/-v2-delegates--post.ts b/components/ApiReference/examples/bsc/-v2-delegates--post.ts
new file mode 100644
index 00000000..d1fc8dc4
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/bsc/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/bsc/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..a4546e2e
--- /dev/null
+++ b/components/ApiReference/examples/bsc/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 56n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/celo/-v1-about--get.ts b/components/ApiReference/examples/celo/-v1-about--get.ts
new file mode 100644
index 00000000..d801d2f7
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/celo/-v1-about-singletons--get.ts b/components/ApiReference/examples/celo/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..60f8fc19
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/celo/-v1-contracts--get.ts b/components/ApiReference/examples/celo/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/celo/-v1-data-decoder--post.ts b/components/ApiReference/examples/celo/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..c1066076
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/celo/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/celo/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..391faff0
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/celo/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/celo/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..237081bf
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/celo/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/celo/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..b1dbea1f
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/celo/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/celo/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..3eae01ef
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..7436aa39
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..d011a9ac
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..381e2304
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..7cf830a6
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..89d318c7
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..feccc21b
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..21407da9
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..4de75d84
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/celo/-v1-tokens--get.ts b/components/ApiReference/examples/celo/-v1-tokens--get.ts
new file mode 100644
index 00000000..f7e0fb93
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/celo/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/celo/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..e3be3bf3
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/celo/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/celo/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/celo/-v2-delegates--get.ts b/components/ApiReference/examples/celo/-v2-delegates--get.ts
new file mode 100644
index 00000000..7c9f5fe6
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/celo/-v2-delegates--post.ts b/components/ApiReference/examples/celo/-v2-delegates--post.ts
new file mode 100644
index 00000000..517bfec2
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/celo/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/celo/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..2d2a90cd
--- /dev/null
+++ b/components/ApiReference/examples/celo/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 42220n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/chiado/-v1-about--get.ts b/components/ApiReference/examples/chiado/-v1-about--get.ts
new file mode 100644
index 00000000..3a6eb405
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/chiado/-v1-about-singletons--get.ts b/components/ApiReference/examples/chiado/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..a8120ccd
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/chiado/-v1-contracts--get.ts b/components/ApiReference/examples/chiado/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/chiado/-v1-data-decoder--post.ts b/components/ApiReference/examples/chiado/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..c0af22d9
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/chiado/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/chiado/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..6fd61f5f
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/chiado/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/chiado/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..a302ce8b
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/chiado/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/chiado/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..5dc6ab8c
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/chiado/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/chiado/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..9948ed9f
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..86d1934c
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..e6b3b0ac
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..f4551041
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..dbe66e7a
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..68d38f41
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..736e705f
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..6cda1186
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..37a95475
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/chiado/-v1-tokens--get.ts b/components/ApiReference/examples/chiado/-v1-tokens--get.ts
new file mode 100644
index 00000000..3beb1da4
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/chiado/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/chiado/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..97caa2e3
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/chiado/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/chiado/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/chiado/-v2-delegates--get.ts b/components/ApiReference/examples/chiado/-v2-delegates--get.ts
new file mode 100644
index 00000000..6aa38c2d
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/chiado/-v2-delegates--post.ts b/components/ApiReference/examples/chiado/-v2-delegates--post.ts
new file mode 100644
index 00000000..b88f1b48
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/chiado/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/chiado/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..773a76ab
--- /dev/null
+++ b/components/ApiReference/examples/chiado/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 10200n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-about--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-about--get.ts
new file mode 100644
index 00000000..0c9362fa
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-about-singletons--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..095de242
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-contracts--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-data-decoder--post.ts b/components/ApiReference/examples/gnosis-chain/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..09bc2407
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..87bb63bb
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..6d635a7d
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..175fc0a5
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..bf2cb8f9
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..0dbf79e2
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..cd2b39e9
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..3b309fa4
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..d0a20c32
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..6388631b
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..e4af95d6
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..de7ec192
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..80418549
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-tokens--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-tokens--get.ts
new file mode 100644
index 00000000..27745465
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..27aa5609
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/gnosis-chain/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/gnosis-chain/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/gnosis-chain/-v2-delegates--get.ts b/components/ApiReference/examples/gnosis-chain/-v2-delegates--get.ts
new file mode 100644
index 00000000..6284bf97
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/gnosis-chain/-v2-delegates--post.ts b/components/ApiReference/examples/gnosis-chain/-v2-delegates--post.ts
new file mode 100644
index 00000000..482508c6
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/gnosis-chain/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/gnosis-chain/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..ada57474
--- /dev/null
+++ b/components/ApiReference/examples/gnosis-chain/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 100n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/linea/-v1-about--get.ts b/components/ApiReference/examples/linea/-v1-about--get.ts
new file mode 100644
index 00000000..67ea52a2
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/linea/-v1-about-singletons--get.ts b/components/ApiReference/examples/linea/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..ce401be7
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/linea/-v1-contracts--get.ts b/components/ApiReference/examples/linea/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/linea/-v1-data-decoder--post.ts b/components/ApiReference/examples/linea/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..eacfa1bb
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/linea/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/linea/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..9e101506
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/linea/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/linea/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..b9b1cc06
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/linea/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/linea/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..ba0ee8aa
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/linea/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/linea/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..2be15cf9
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..b4f4a1f6
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..a2b2bb92
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..d2587df8
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..d388cb34
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..e33b4058
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..b69e6814
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..f41da1d5
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..d4a8959a
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/linea/-v1-tokens--get.ts b/components/ApiReference/examples/linea/-v1-tokens--get.ts
new file mode 100644
index 00000000..c4534629
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/linea/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/linea/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..ca34f198
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/linea/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/linea/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/linea/-v2-delegates--get.ts b/components/ApiReference/examples/linea/-v2-delegates--get.ts
new file mode 100644
index 00000000..d9a46977
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/linea/-v2-delegates--post.ts b/components/ApiReference/examples/linea/-v2-delegates--post.ts
new file mode 100644
index 00000000..5136f872
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/linea/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/linea/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..85056b2d
--- /dev/null
+++ b/components/ApiReference/examples/linea/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 59144n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/mainnet/-v1-about--get.ts b/components/ApiReference/examples/mainnet/-v1-about--get.ts
new file mode 100644
index 00000000..c3bce61e
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/mainnet/-v1-about-singletons--get.ts b/components/ApiReference/examples/mainnet/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..dfa113b1
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/mainnet/-v1-contracts--get.ts b/components/ApiReference/examples/mainnet/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/mainnet/-v1-data-decoder--post.ts b/components/ApiReference/examples/mainnet/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..e8b6f758
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..b3de08e4
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..d5d42680
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/mainnet/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/mainnet/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..edf12d14
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/mainnet/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/mainnet/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..25d556a4
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..3ea1005a
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..c91d2db0
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..d5fa3842
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..1995b161
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..11a9f9fb
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..81626854
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..bb7f0e44
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..5ee5f9b5
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/mainnet/-v1-tokens--get.ts b/components/ApiReference/examples/mainnet/-v1-tokens--get.ts
new file mode 100644
index 00000000..378b68e1
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/mainnet/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/mainnet/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..b2be93a4
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/mainnet/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/mainnet/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/mainnet/-v2-delegates--get.ts b/components/ApiReference/examples/mainnet/-v2-delegates--get.ts
new file mode 100644
index 00000000..803542f8
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/mainnet/-v2-delegates--post.ts b/components/ApiReference/examples/mainnet/-v2-delegates--post.ts
new file mode 100644
index 00000000..79e0eae9
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/mainnet/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/mainnet/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..464684d4
--- /dev/null
+++ b/components/ApiReference/examples/mainnet/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/mantle/-v1-about--get.ts b/components/ApiReference/examples/mantle/-v1-about--get.ts
new file mode 100644
index 00000000..a7d2b4db
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/mantle/-v1-about-singletons--get.ts b/components/ApiReference/examples/mantle/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..48e217af
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/mantle/-v1-contracts--get.ts b/components/ApiReference/examples/mantle/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/mantle/-v1-data-decoder--post.ts b/components/ApiReference/examples/mantle/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..3f1bcfb0
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/mantle/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/mantle/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..e771ff2d
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/mantle/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/mantle/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..8c89e940
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/mantle/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/mantle/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..c80b44f0
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/mantle/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/mantle/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..1178af1a
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..efbc7631
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..acac723e
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..19e89dc3
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..a26c8bff
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..3418ff01
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..28f77ea2
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..37027b12
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..70c3767c
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/mantle/-v1-tokens--get.ts b/components/ApiReference/examples/mantle/-v1-tokens--get.ts
new file mode 100644
index 00000000..9d27fcdf
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/mantle/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/mantle/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..4f4391d2
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/mantle/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/mantle/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/mantle/-v2-delegates--get.ts b/components/ApiReference/examples/mantle/-v2-delegates--get.ts
new file mode 100644
index 00000000..cc506f4d
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/mantle/-v2-delegates--post.ts b/components/ApiReference/examples/mantle/-v2-delegates--post.ts
new file mode 100644
index 00000000..9a4f921d
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/mantle/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/mantle/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..7abc8cee
--- /dev/null
+++ b/components/ApiReference/examples/mantle/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 5000n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/optimism/-v1-about--get.ts b/components/ApiReference/examples/optimism/-v1-about--get.ts
new file mode 100644
index 00000000..71aa490c
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/optimism/-v1-about-singletons--get.ts b/components/ApiReference/examples/optimism/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..d586dd0c
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/optimism/-v1-contracts--get.ts b/components/ApiReference/examples/optimism/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/optimism/-v1-data-decoder--post.ts b/components/ApiReference/examples/optimism/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..da4c0d6e
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/optimism/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/optimism/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..54047ce4
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/optimism/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/optimism/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..d2351654
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/optimism/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/optimism/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..cfe99c66
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/optimism/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/optimism/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..08443fdd
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..2c7e3357
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..12cc88ef
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..f6e59971
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..2cddd3fa
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..b24187e7
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..b266e49f
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..7859accb
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..2db83195
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/optimism/-v1-tokens--get.ts b/components/ApiReference/examples/optimism/-v1-tokens--get.ts
new file mode 100644
index 00000000..95e6cc6c
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/optimism/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/optimism/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..56f9915c
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/optimism/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/optimism/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/optimism/-v2-delegates--get.ts b/components/ApiReference/examples/optimism/-v2-delegates--get.ts
new file mode 100644
index 00000000..ed204973
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/optimism/-v2-delegates--post.ts b/components/ApiReference/examples/optimism/-v2-delegates--post.ts
new file mode 100644
index 00000000..72f0902d
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/optimism/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/optimism/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..51b55da2
--- /dev/null
+++ b/components/ApiReference/examples/optimism/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 10n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/polygon/-v1-about--get.ts b/components/ApiReference/examples/polygon/-v1-about--get.ts
new file mode 100644
index 00000000..7b028e63
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/polygon/-v1-about-singletons--get.ts b/components/ApiReference/examples/polygon/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..dfd1f1d9
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/polygon/-v1-contracts--get.ts b/components/ApiReference/examples/polygon/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/polygon/-v1-data-decoder--post.ts b/components/ApiReference/examples/polygon/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..38da21bd
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/polygon/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/polygon/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..37a6e477
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/polygon/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/polygon/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..5a4e2009
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/polygon/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/polygon/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..95dcea3a
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/polygon/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/polygon/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..bf20eadc
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..c65a6519
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..bb8116c0
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..e3b2d4b9
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..4200b1d6
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..a650df08
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..296f885a
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..4565aba9
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..6f1d1638
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/polygon/-v1-tokens--get.ts b/components/ApiReference/examples/polygon/-v1-tokens--get.ts
new file mode 100644
index 00000000..d4443719
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/polygon/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/polygon/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..02622f99
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/polygon/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/polygon/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/polygon/-v2-delegates--get.ts b/components/ApiReference/examples/polygon/-v2-delegates--get.ts
new file mode 100644
index 00000000..4cbfafd1
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/polygon/-v2-delegates--post.ts b/components/ApiReference/examples/polygon/-v2-delegates--post.ts
new file mode 100644
index 00000000..bd465009
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/polygon/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/polygon/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..2114a61a
--- /dev/null
+++ b/components/ApiReference/examples/polygon/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 137n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/scroll/-v1-about--get.ts b/components/ApiReference/examples/scroll/-v1-about--get.ts
new file mode 100644
index 00000000..e80da42e
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/scroll/-v1-about-singletons--get.ts b/components/ApiReference/examples/scroll/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..4d8d7b43
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/scroll/-v1-contracts--get.ts b/components/ApiReference/examples/scroll/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/scroll/-v1-data-decoder--post.ts b/components/ApiReference/examples/scroll/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..4c9e296b
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/scroll/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/scroll/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..e964dbf7
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/scroll/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/scroll/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..fa039383
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/scroll/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/scroll/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..a41118e4
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/scroll/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/scroll/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..53214c11
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..177e0a11
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..dff7aa42
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..c79af8bc
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..73d78d95
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..90dc3959
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..51ea0549
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..06aae921
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..76ce0bc8
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/scroll/-v1-tokens--get.ts b/components/ApiReference/examples/scroll/-v1-tokens--get.ts
new file mode 100644
index 00000000..877b79e3
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/scroll/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/scroll/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..8e9d6450
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/scroll/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/scroll/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/scroll/-v2-delegates--get.ts b/components/ApiReference/examples/scroll/-v2-delegates--get.ts
new file mode 100644
index 00000000..65d51a51
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/scroll/-v2-delegates--post.ts b/components/ApiReference/examples/scroll/-v2-delegates--post.ts
new file mode 100644
index 00000000..c9323523
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/scroll/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/scroll/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..0504d16d
--- /dev/null
+++ b/components/ApiReference/examples/scroll/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 534352n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/-v1-about--get.ts b/components/ApiReference/examples/sepolia/-v1-about--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-about--get.ts
rename to components/ApiReference/examples/sepolia/-v1-about--get.ts
diff --git a/components/ApiReference/examples/-v1-about-singletons--get.ts b/components/ApiReference/examples/sepolia/-v1-about-singletons--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-about-singletons--get.ts
rename to components/ApiReference/examples/sepolia/-v1-about-singletons--get.ts
diff --git a/components/ApiReference/examples/sepolia/-v1-contracts--get.ts b/components/ApiReference/examples/sepolia/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/sepolia/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/-v1-data-decoder--post.ts b/components/ApiReference/examples/sepolia/-v1-data-decoder--post.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-data-decoder--post.ts
rename to components/ApiReference/examples/sepolia/-v1-data-decoder--post.ts
diff --git a/components/ApiReference/examples/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/sepolia/-v1-messages-{message_hash}--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-messages-{message_hash}--get.ts
rename to components/ApiReference/examples/sepolia/-v1-messages-{message_hash}--get.ts
diff --git a/components/ApiReference/examples/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/sepolia/-v1-messages-{message_hash}-signatures--post.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-messages-{message_hash}-signatures--post.ts
rename to components/ApiReference/examples/sepolia/-v1-messages-{message_hash}-signatures--post.ts
diff --git a/components/ApiReference/examples/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/sepolia/-v1-modules-{address}-safes--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-modules-{address}-safes--get.ts
rename to components/ApiReference/examples/sepolia/-v1-modules-{address}-safes--get.ts
diff --git a/components/ApiReference/examples/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/sepolia/-v1-owners-{address}-safes--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-owners-{address}-safes--get.ts
rename to components/ApiReference/examples/sepolia/-v1-owners-{address}-safes--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-all-transactions--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-all-transactions--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-all-transactions--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-creation--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-creation--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-creation--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-messages--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-messages--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-messages--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-messages--post.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-messages--post.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-messages--post.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-module-transactions--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-module-transactions--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-module-transactions--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-multisig-transactions--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-multisig-transactions--get.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-multisig-transactions--get.ts
diff --git a/components/ApiReference/examples/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/sepolia/-v1-safes-{address}-multisig-transactions--post.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-safes-{address}-multisig-transactions--post.ts
rename to components/ApiReference/examples/sepolia/-v1-safes-{address}-multisig-transactions--post.ts
diff --git a/components/ApiReference/examples/-v1-tokens--get.ts b/components/ApiReference/examples/sepolia/-v1-tokens--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-tokens--get.ts
rename to components/ApiReference/examples/sepolia/-v1-tokens--get.ts
diff --git a/components/ApiReference/examples/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/sepolia/-v1-tokens-{address}--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v1-tokens-{address}--get.ts
rename to components/ApiReference/examples/sepolia/-v1-tokens-{address}--get.ts
diff --git a/components/ApiReference/examples/sepolia/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/sepolia/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/sepolia/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/-v2-delegates--get.ts b/components/ApiReference/examples/sepolia/-v2-delegates--get.ts
similarity index 100%
rename from components/ApiReference/examples/-v2-delegates--get.ts
rename to components/ApiReference/examples/sepolia/-v2-delegates--get.ts
diff --git a/components/ApiReference/examples/-v2-delegates--post.ts b/components/ApiReference/examples/sepolia/-v2-delegates--post.ts
similarity index 100%
rename from components/ApiReference/examples/-v2-delegates--post.ts
rename to components/ApiReference/examples/sepolia/-v2-delegates--post.ts
diff --git a/components/ApiReference/examples/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/sepolia/-v2-delegates-{delegate_address}--delete.ts
similarity index 100%
rename from components/ApiReference/examples/-v2-delegates-{delegate_address}--delete.ts
rename to components/ApiReference/examples/sepolia/-v2-delegates-{delegate_address}--delete.ts
diff --git a/components/ApiReference/examples/worldchain/-v1-about--get.ts b/components/ApiReference/examples/worldchain/-v1-about--get.ts
new file mode 100644
index 00000000..36493728
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/worldchain/-v1-about-singletons--get.ts b/components/ApiReference/examples/worldchain/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..b2fb7040
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/worldchain/-v1-contracts--get.ts b/components/ApiReference/examples/worldchain/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/worldchain/-v1-data-decoder--post.ts b/components/ApiReference/examples/worldchain/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..eef91bab
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..0f0e2b2a
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..c5080311
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/worldchain/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/worldchain/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..e574e203
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/worldchain/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/worldchain/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..e7b66733
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..24bc99be
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..eceeacf2
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..3baca0e7
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..fa75b50f
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..6339bd51
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..e8e7a0f0
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..eb4f7c23
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..8ef1bd42
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/worldchain/-v1-tokens--get.ts b/components/ApiReference/examples/worldchain/-v1-tokens--get.ts
new file mode 100644
index 00000000..a73f4c63
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/worldchain/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/worldchain/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..d3074cea
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/worldchain/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/worldchain/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/worldchain/-v2-delegates--get.ts b/components/ApiReference/examples/worldchain/-v2-delegates--get.ts
new file mode 100644
index 00000000..27cb2bcb
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/worldchain/-v2-delegates--post.ts b/components/ApiReference/examples/worldchain/-v2-delegates--post.ts
new file mode 100644
index 00000000..f5fb2446
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/worldchain/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/worldchain/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..c9f42140
--- /dev/null
+++ b/components/ApiReference/examples/worldchain/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 480n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/xlayer/-v1-about--get.ts b/components/ApiReference/examples/xlayer/-v1-about--get.ts
new file mode 100644
index 00000000..df41bead
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/xlayer/-v1-about-singletons--get.ts b/components/ApiReference/examples/xlayer/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..0082df15
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/xlayer/-v1-contracts--get.ts b/components/ApiReference/examples/xlayer/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/xlayer/-v1-data-decoder--post.ts b/components/ApiReference/examples/xlayer/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..b0f796cd
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..43fbd1d0
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..13815d99
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/xlayer/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/xlayer/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..a6f72243
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/xlayer/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/xlayer/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..d201e3f8
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..dfb9e3ea
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..6aa2c867
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..de22537f
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..c2daeae0
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..1a361989
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..4158405a
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..5314074d
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..e457810b
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/xlayer/-v1-tokens--get.ts b/components/ApiReference/examples/xlayer/-v1-tokens--get.ts
new file mode 100644
index 00000000..14f02a7d
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/xlayer/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/xlayer/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..11c705fb
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/xlayer/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/xlayer/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/xlayer/-v2-delegates--get.ts b/components/ApiReference/examples/xlayer/-v2-delegates--get.ts
new file mode 100644
index 00000000..9442c8bc
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/xlayer/-v2-delegates--post.ts b/components/ApiReference/examples/xlayer/-v2-delegates--post.ts
new file mode 100644
index 00000000..53e8ddcc
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/xlayer/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/xlayer/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..e4cc7099
--- /dev/null
+++ b/components/ApiReference/examples/xlayer/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 196n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/zkevm/-v1-about--get.ts b/components/ApiReference/examples/zkevm/-v1-about--get.ts
new file mode 100644
index 00000000..0097963e
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/zkevm/-v1-about-singletons--get.ts b/components/ApiReference/examples/zkevm/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..9eeca9cb
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/zkevm/-v1-contracts--get.ts b/components/ApiReference/examples/zkevm/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/zkevm/-v1-data-decoder--post.ts b/components/ApiReference/examples/zkevm/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..2c98eade
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..359e11cb
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..035cab07
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/zkevm/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/zkevm/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..c29f8b79
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/zkevm/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/zkevm/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..0431f181
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..9e524b3d
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..39855b4a
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..0e9040a7
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..e8444195
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..d5d44661
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..b9bfa600
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..e9e1fc47
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..dd8c4998
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/zkevm/-v1-tokens--get.ts b/components/ApiReference/examples/zkevm/-v1-tokens--get.ts
new file mode 100644
index 00000000..3fc2e932
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/zkevm/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/zkevm/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..9875baf7
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/zkevm/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/zkevm/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/zkevm/-v2-delegates--get.ts b/components/ApiReference/examples/zkevm/-v2-delegates--get.ts
new file mode 100644
index 00000000..2e864367
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/zkevm/-v2-delegates--post.ts b/components/ApiReference/examples/zkevm/-v2-delegates--post.ts
new file mode 100644
index 00000000..d7906245
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/zkevm/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/zkevm/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..73e114b7
--- /dev/null
+++ b/components/ApiReference/examples/zkevm/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 1101n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/zksync/-v1-about--get.ts b/components/ApiReference/examples/zksync/-v1-about--get.ts
new file mode 100644
index 00000000..b3a3afb0
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-about--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const info = await apiKit.getServiceInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/zksync/-v1-about-singletons--get.ts b/components/ApiReference/examples/zksync/-v1-about-singletons--get.ts
new file mode 100644
index 00000000..14bb9c39
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-about-singletons--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const info = await apiKit.getServiceSingletonsInfo()
+
+console.log(info)
diff --git a/components/ApiReference/examples/zksync/-v1-contracts--get.ts b/components/ApiReference/examples/zksync/-v1-contracts--get.ts
new file mode 100644
index 00000000..336ce12b
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-contracts--get.ts
@@ -0,0 +1 @@
+export {}
diff --git a/components/ApiReference/examples/zksync/-v1-data-decoder--post.ts b/components/ApiReference/examples/zksync/-v1-data-decoder--post.ts
new file mode 100644
index 00000000..643282ce
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-data-decoder--post.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const data = await apiKit.decodeData(
+ '0xa9059cbb0000000000000000000000005298a93734c3d979ef1f23f78ebb871879a21f220000000000000000000000000000000000000000000000008ac7230489e80000'
+)
+
+console.log(data)
diff --git a/components/ApiReference/examples/zksync/-v1-messages-{message_hash}--get.ts b/components/ApiReference/examples/zksync/-v1-messages-{message_hash}--get.ts
new file mode 100644
index 00000000..4bcdb528
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-messages-{message_hash}--get.ts
@@ -0,0 +1,12 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const messageHash =
+ '0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777'
+
+const message = await apiKit.getMessage(messageHash)
+
+console.log(message)
diff --git a/components/ApiReference/examples/zksync/-v1-messages-{message_hash}-signatures--post.ts b/components/ApiReference/examples/zksync/-v1-messages-{message_hash}-signatures--post.ts
new file mode 100644
index 00000000..85318ab4
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-messages-{message_hash}-signatures--post.ts
@@ -0,0 +1,25 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const messageHash =
+ '0xdd8c1417bf85842b6181288b1d2da439175c39dcef149097833dd25aef918d79'
+const rawMessage = 'string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+const result = await apiKit.addMessageSignature(
+ messageHash,
+ signedMessage.encodedSignatures()
+)
+
+console.log(result)
diff --git a/components/ApiReference/examples/zksync/-v1-modules-{address}-safes--get.ts b/components/ApiReference/examples/zksync/-v1-modules-{address}-safes--get.ts
new file mode 100644
index 00000000..f58d62b7
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-modules-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safes = await apiKit.getSafesByModule(
+ '0xB4F5e59987549a2586976e8957962dBD54a26FD0'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/zksync/-v1-owners-{address}-safes--get.ts b/components/ApiReference/examples/zksync/-v1-owners-{address}-safes--get.ts
new file mode 100644
index 00000000..56b8a187
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-owners-{address}-safes--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safes = await apiKit.getSafesByOwner(
+ '0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2'
+)
+
+console.log(safes)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}--get.ts
new file mode 100644
index 00000000..1139ef79
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safeInfo = await apiKit.getSafeInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeInfo)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-all-transactions--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-all-transactions--get.ts
new file mode 100644
index 00000000..06b9647c
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-all-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const transactions = await apiKit.getAllTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(transactions)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-creation--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-creation--get.ts
new file mode 100644
index 00000000..2c8f3e6a
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-creation--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safeCreationInfo = await apiKit.getSafeCreationInfo(
+ '0x5298A93734C3D979eF1f23F78eBB871879A21F22'
+)
+
+console.log(safeCreationInfo)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--get.ts
new file mode 100644
index 00000000..fc6c6656
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const messages = await apiKit.getMessages(safeAddress)
+
+console.log(messages)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--post.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--post.ts
new file mode 100644
index 00000000..c457f82d
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-messages--post.ts
@@ -0,0 +1,28 @@
+import Safe from '@safe-global/protocol-kit'
+import SafeApiKit from '@safe-global/api-kit'
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const protocolKit = await Safe.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ safeAddress
+})
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const rawMessage = '1: string message'
+const safeMessage = protocolKit.createMessage(rawMessage)
+const signedMessage = await protocolKit.signMessage(safeMessage, 'eth_sign')
+
+console.log({
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
+
+apiKit.addMessage(safeAddress, {
+ message: rawMessage,
+ signature: signedMessage.encodedSignatures()
+})
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-module-transactions--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-module-transactions--get.ts
new file mode 100644
index 00000000..4d250c6e
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-module-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const moduleTransactions = await apiKit.getModuleTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(moduleTransactions)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--get.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--get.ts
new file mode 100644
index 00000000..c558b66f
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const multisigTransactions = await apiKit.getMultisigTransactions(
+ '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+)
+
+console.log(multisigTransactions)
diff --git a/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--post.ts b/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--post.ts
new file mode 100644
index 00000000..b0a9aef2
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-safes-{address}-multisig-transactions--post.ts
@@ -0,0 +1,21 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const safeAddress = '0x5298a93734c3d979ef1f23f78ebb871879a21f22'
+
+const safeTransaction = {
+ to: safeAddress,
+ value: '0',
+ data: '0x',
+ operation: 0 // 0 = call, 1 = delegate call
+}
+
+const estimateTx = await apiKit.estimateSafeTransaction(
+ safeAddress,
+ safeTransaction
+)
+
+console.log(estimateTx)
diff --git a/components/ApiReference/examples/zksync/-v1-tokens--get.ts b/components/ApiReference/examples/zksync/-v1-tokens--get.ts
new file mode 100644
index 00000000..1b43695b
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-tokens--get.ts
@@ -0,0 +1,9 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const tokenList = await apiKit.getTokenList()
+
+console.log(tokenList)
diff --git a/components/ApiReference/examples/zksync/-v1-tokens-{address}--get.ts b/components/ApiReference/examples/zksync/-v1-tokens-{address}--get.ts
new file mode 100644
index 00000000..38c0eb81
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-tokens-{address}--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const token = await apiKit.getToken(
+ '0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d'
+)
+
+console.log(token)
diff --git a/components/ApiReference/examples/zksync/-v1-user-operations-{user_operation_hash}--get.ts b/components/ApiReference/examples/zksync/-v1-user-operations-{user_operation_hash}--get.ts
new file mode 100644
index 00000000..da282bc0
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v1-user-operations-{user_operation_hash}--get.ts
@@ -0,0 +1,19 @@
+import { Safe4337Pack } from '@safe-global/relay-kit'
+
+const safe4337Pack = await Safe4337Pack.init({
+ provider: 'https://eth-sepolia.public.blastapi.io',
+ signer: '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ bundlerUrl: `https://api.pimlico.io/v1/sepolia/rpc?apikey=${PIMLICO_API_KEY}`,
+ options: {
+ safeAddress: '0x97566B1eCaCd321736F183117C26ACe1b72F4a1b'
+ }
+})
+
+const userOperationHash =
+ '0x7bf502ad622e62823c971d800033e82e5670fcdd1c19437555fb2d8b7eefd644'
+
+const userOperation = await safe4337Pack.getUserOperationByHash(
+ userOperationHash
+)
+
+console.log(userOperation)
diff --git a/components/ApiReference/examples/zksync/-v2-delegates--get.ts b/components/ApiReference/examples/zksync/-v2-delegates--get.ts
new file mode 100644
index 00000000..9510a790
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v2-delegates--get.ts
@@ -0,0 +1,11 @@
+import SafeApiKit from '@safe-global/api-kit'
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const delegates = await apiKit.getSafeDelegates({
+ safeAddress: '0xb53a6b6f67847cff94fdb94b90345cb45a2c7301'
+})
+
+console.log(delegates)
diff --git a/components/ApiReference/examples/zksync/-v2-delegates--post.ts b/components/ApiReference/examples/zksync/-v2-delegates--post.ts
new file mode 100644
index 00000000..2ff3e166
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v2-delegates--post.ts
@@ -0,0 +1,25 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.addSafeDelegate({
+ safeAddress: '0x5298a93734c3d979ef1f23f78ebb871879a21f22',
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ label: 'Your label',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/examples/zksync/-v2-delegates-{delegate_address}--delete.ts b/components/ApiReference/examples/zksync/-v2-delegates-{delegate_address}--delete.ts
new file mode 100644
index 00000000..3337ff8c
--- /dev/null
+++ b/components/ApiReference/examples/zksync/-v2-delegates-{delegate_address}--delete.ts
@@ -0,0 +1,23 @@
+import SafeApiKit from '@safe-global/api-kit'
+import { ethers } from 'ethers' // Ethers v6
+
+const apiKit = new SafeApiKit({
+ chainId: 324n
+})
+
+const provider = new ethers.JsonRpcProvider(
+ 'https://eth-sepolia.public.blastapi.io'
+)
+
+const signer = new ethers.Wallet(
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
+ provider
+)
+
+const response = await apiKit.removeSafeDelegate({
+ delegateAddress: '0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d',
+ delegatorAddress: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
+ signer
+})
+
+console.log(response)
diff --git a/components/ApiReference/generated/arbitrum-reference.mdx b/components/ApiReference/generated/arbitrum-reference.mdx
new file mode 100644
index 00000000..fd6a09c9
--- /dev/null
+++ b/components/ApiReference/generated/arbitrum-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-arbitrum.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-arbitrum.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/arbitrum/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-arbitrum.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/aurora-reference.mdx b/components/ApiReference/generated/aurora-reference.mdx
new file mode 100644
index 00000000..e3d21e0a
--- /dev/null
+++ b/components/ApiReference/generated/aurora-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-aurora.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-aurora.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/aurora/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-aurora.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/avalanche-reference.mdx b/components/ApiReference/generated/avalanche-reference.mdx
new file mode 100644
index 00000000..fa9585a4
--- /dev/null
+++ b/components/ApiReference/generated/avalanche-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-avalanche.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-avalanche.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/avalanche/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-avalanche.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/base-reference.mdx b/components/ApiReference/generated/base-reference.mdx
new file mode 100644
index 00000000..b5bdcbd9
--- /dev/null
+++ b/components/ApiReference/generated/base-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-base.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-base.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/base-sepolia-reference.mdx b/components/ApiReference/generated/base-sepolia-reference.mdx
new file mode 100644
index 00000000..dc5dca32
--- /dev/null
+++ b/components/ApiReference/generated/base-sepolia-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-base-sepolia.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-base-sepolia.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/base-sepolia/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-base-sepolia.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/blast-reference.mdx b/components/ApiReference/generated/blast-reference.mdx
new file mode 100644
index 00000000..c0ba8240
--- /dev/null
+++ b/components/ApiReference/generated/blast-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-blast.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-blast.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/blast/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-blast.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/bsc-reference.mdx b/components/ApiReference/generated/bsc-reference.mdx
new file mode 100644
index 00000000..604b0f64
--- /dev/null
+++ b/components/ApiReference/generated/bsc-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-bsc.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-bsc.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/bsc/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-bsc.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/celo-reference.mdx b/components/ApiReference/generated/celo-reference.mdx
new file mode 100644
index 00000000..3f4175c9
--- /dev/null
+++ b/components/ApiReference/generated/celo-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-celo.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-celo.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/celo/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-celo.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/chiado-reference.mdx b/components/ApiReference/generated/chiado-reference.mdx
new file mode 100644
index 00000000..56481ead
--- /dev/null
+++ b/components/ApiReference/generated/chiado-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-chiado.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-chiado.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/chiado/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-chiado.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/gnosis-chain-reference.mdx b/components/ApiReference/generated/gnosis-chain-reference.mdx
new file mode 100644
index 00000000..d978a3ed
--- /dev/null
+++ b/components/ApiReference/generated/gnosis-chain-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-gnosis-chain.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-gnosis-chain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/gnosis-chain/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-gnosis-chain.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/linea-reference.mdx b/components/ApiReference/generated/linea-reference.mdx
new file mode 100644
index 00000000..e329261d
--- /dev/null
+++ b/components/ApiReference/generated/linea-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-linea.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-linea.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/linea/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-linea.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/mainnet-reference.mdx b/components/ApiReference/generated/mainnet-reference.mdx
new file mode 100644
index 00000000..cc1d8c6e
--- /dev/null
+++ b/components/ApiReference/generated/mainnet-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-mainnet.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-mainnet.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mainnet/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mainnet.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/mantle-reference.mdx b/components/ApiReference/generated/mantle-reference.mdx
new file mode 100644
index 00000000..560dd19c
--- /dev/null
+++ b/components/ApiReference/generated/mantle-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-mantle.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-mantle.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/mantle/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-mantle.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/optimism-reference.mdx b/components/ApiReference/generated/optimism-reference.mdx
new file mode 100644
index 00000000..5e0a680a
--- /dev/null
+++ b/components/ApiReference/generated/optimism-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-optimism.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-optimism.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/optimism/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-optimism.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/polygon-reference.mdx b/components/ApiReference/generated/polygon-reference.mdx
new file mode 100644
index 00000000..bd0869c8
--- /dev/null
+++ b/components/ApiReference/generated/polygon-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-polygon.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-polygon.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/polygon/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-polygon.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/scroll-reference.mdx b/components/ApiReference/generated/scroll-reference.mdx
new file mode 100644
index 00000000..36a7ebca
--- /dev/null
+++ b/components/ApiReference/generated/scroll-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-scroll.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-scroll.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/scroll/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-scroll.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated-reference.mdx b/components/ApiReference/generated/sepolia-reference.mdx
similarity index 98%
rename from components/ApiReference/generated-reference.mdx
rename to components/ApiReference/generated/sepolia-reference.mdx
index 4877ca4a..be48162b 100644
--- a/components/ApiReference/generated-reference.mdx
+++ b/components/ApiReference/generated/sepolia-reference.mdx
@@ -1,10 +1,10 @@
-import Path from './Path'
-import Hr from '../Hr'
-import SampleRequestHeader from './SampleRequestHeader'
-import Parameters from './Parameter'
-import NetworkSwitcher, { NetworkNotice } from './Network'
-import Responses from './Response'
-import Feedback from '../Feedback'
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
import Grid from '@mui/material/Grid'
import Box from '@mui/material/Box'
import NextLink from 'next/link'
@@ -14,7 +14,7 @@ import Link from '@mui/material/Link'
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](../../core-api/transaction-service-supported-networks), at different endpoints.
+This service is available on [multiple networks](../../../core-api/transaction-service-supported-networks), at different endpoints.
@@ -55,7 +55,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/contracts/ \
```
-
#### Sample Response
@@ -131,7 +130,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/contracts/0x
```
-
#### Sample Response
@@ -190,7 +188,7 @@ as in case of an ABI collision the Safe Transaction Service would know which ABI
```js TypeScript
-// from examples/-v1-data-decoder--post.ts
+// from ../examples/sepolia/-v1-data-decoder--post.ts
```
```bash curl
@@ -201,7 +199,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/data-decode
```
-
#### Sample Response
@@ -260,7 +257,7 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/data-decode
```js TypeScript
-// from examples/-v2-delegates--get.ts
+// from ../examples/sepolia/-v2-delegates--get.ts
```
```bash curl
@@ -271,7 +268,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v2/delegates/ \
```
-
#### Sample Response
@@ -353,7 +349,7 @@ Unix UTC epoch time (no milliseconds) and dividing by 3600 (natural division, no
```js TypeScript
-// from examples/-v2-delegates--post.ts
+// from ../examples/sepolia/-v2-delegates--post.ts
```
```bash curl
@@ -364,7 +360,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v2/delegates/
```
-
#### Sample Response
@@ -405,7 +400,7 @@ either the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/
```js TypeScript
-// from examples/-v2-delegates-{delegate_address}--delete.ts
+// from ../examples/sepolia/-v2-delegates-{delegate_address}--delete.ts
```
```bash curl
@@ -416,7 +411,6 @@ curl -X DELETE https://safe-transaction-sepolia.safe.global/api/api/v2/delegates
```
-
#### Sample Response
@@ -461,7 +455,7 @@ Empty Response
```js TypeScript
-// from examples/-v1-messages-{message_hash}--get.ts
+// from ../examples/sepolia/-v1-messages-{message_hash}--get.ts
```
```bash curl
@@ -472,7 +466,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/messages/0x3
```
-
#### Sample Response
@@ -529,7 +522,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/messages/0x3
```js TypeScript
-// from examples/-v1-messages-{message_hash}-signatures--post.ts
+// from ../examples/sepolia/-v1-messages-{message_hash}-signatures--post.ts
```
```bash curl
@@ -540,7 +533,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/messages/0x
```
-
#### Sample Response
@@ -579,7 +571,7 @@ Empty Response
```js TypeScript
-// from examples/-v1-safes-{address}-messages--get.ts
+// from ../examples/sepolia/-v1-safes-{address}-messages--get.ts
```
```bash curl
@@ -590,7 +582,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -662,7 +653,7 @@ service needs to derive it itself.
```js TypeScript
-// from examples/-v1-safes-{address}-messages--post.ts
+// from ../examples/sepolia/-v1-safes-{address}-messages--post.ts
```
```bash curl
@@ -673,7 +664,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2
```
-
#### Sample Response
@@ -725,7 +715,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/module-trans
```
-
#### Sample Response
@@ -785,7 +774,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/multisig-tra
```
-
#### Sample Response
@@ -913,7 +901,6 @@ curl -X DELETE https://safe-transaction-sepolia.safe.global/api/api/v1/multisig-
```
-
#### Sample Response
@@ -960,7 +947,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/multisig-tra
```
-
#### Sample Response
@@ -1021,7 +1007,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/multisig-tr
```
-
#### Sample Response
@@ -1076,7 +1061,7 @@ but there will be 2 transactions in the list.
```js TypeScript
-// from examples/-v1-safes-{address}-all-transactions--get.ts
+// from ../examples/sepolia/-v1-safes-{address}-all-transactions--get.ts
```
```bash curl
@@ -1087,7 +1072,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -1205,7 +1189,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -1263,7 +1246,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```js TypeScript
-// from examples/-v1-safes-{address}-module-transactions--get.ts
+// from ../examples/sepolia/-v1-safes-{address}-module-transactions--get.ts
```
```bash curl
@@ -1274,7 +1257,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -1335,7 +1317,7 @@ By default, only ``trusted`` multisig transactions are returned.
```js TypeScript
-// from examples/-v1-safes-{address}-multisig-transactions--get.ts
+// from ../examples/sepolia/-v1-safes-{address}-multisig-transactions--get.ts
```
```bash curl
@@ -1346,7 +1328,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -1442,7 +1423,7 @@ retrieves all the information related.
```js TypeScript
-// from examples/-v1-safes-{address}-multisig-transactions--post.ts
+// from ../examples/sepolia/-v1-safes-{address}-multisig-transactions--post.ts
```
```bash curl
@@ -1453,7 +1434,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2
```
-
#### Sample Response
@@ -1501,7 +1481,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2
```
-
#### Sample Response
@@ -1550,7 +1529,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -1615,7 +1593,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/transfer/3b3
```
-
#### Sample Response
@@ -1672,7 +1649,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/transfer/3b3
```js TypeScript
-// from examples/-v1-modules-{address}-safes--get.ts
+// from ../examples/sepolia/-v1-modules-{address}-safes--get.ts
```
```bash curl
@@ -1683,7 +1660,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/modules/0xcd
```
-
#### Sample Response
@@ -1730,7 +1706,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/modules/0xcd
```js TypeScript
-// from examples/-v1-owners-{address}-safes--get.ts
+// from ../examples/sepolia/-v1-owners-{address}-safes--get.ts
```
```bash curl
@@ -1741,7 +1717,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/owners/0xcd2
```
-
#### Sample Response
@@ -1805,7 +1780,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safe-operati
```
-
#### Sample Response
@@ -1885,7 +1859,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safe-operati
```
-
#### Sample Response
@@ -1945,7 +1918,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/safe-operat
```
-
#### Sample Response
@@ -1991,7 +1963,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -2078,7 +2049,6 @@ curl -X POST https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2
```
-
#### Sample Response
@@ -2124,7 +2094,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -2204,7 +2173,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```js TypeScript
-// from examples/-v1-user-operations-{user_operation_hash}--get.ts
+// from ../examples/sepolia/-v1-user-operations-{user_operation_hash}--get.ts
```
```bash curl
@@ -2215,7 +2184,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/user-operati
```
-
#### Sample Response
@@ -2294,7 +2262,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/user-operati
```js TypeScript
-// from examples/-v1-safes-{address}--get.ts
+// from ../examples/sepolia/-v1-safes-{address}--get.ts
```
```bash curl
@@ -2305,7 +2273,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -2368,7 +2335,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -2429,7 +2395,7 @@ deployment.
```js TypeScript
-// from examples/-v1-safes-{address}-creation--get.ts
+// from ../examples/sepolia/-v1-safes-{address}-creation--get.ts
```
```bash curl
@@ -2440,7 +2406,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/safes/0xcd2E
```
-
#### Sample Response
@@ -2543,7 +2508,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v2/safes/0xcd2E
```
-
#### Sample Response
@@ -2608,7 +2572,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v2/safes/0xcd2E
```
-
#### Sample Response
@@ -2671,7 +2634,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v2/safes/0xcd2E
```js TypeScript
-// from examples/-v1-tokens--get.ts
+// from ../examples/sepolia/-v1-tokens--get.ts
```
```bash curl
@@ -2682,7 +2645,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/tokens/ \
```
-
#### Sample Response
@@ -2737,7 +2699,7 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/tokens/ \
```js TypeScript
-// from examples/-v1-tokens-{address}--get.ts
+// from ../examples/sepolia/-v1-tokens-{address}--get.ts
```
```bash curl
@@ -2748,7 +2710,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/tokens/0xcd2
```
-
#### Sample Response
@@ -2802,7 +2763,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v1/tokens/lists
```
-
@@ -2849,7 +2809,6 @@ curl -X GET https://safe-transaction-sepolia.safe.global/api/api/v2/analytics/mu
```
-
diff --git a/components/ApiReference/generated/worldchain-reference.mdx b/components/ApiReference/generated/worldchain-reference.mdx
new file mode 100644
index 00000000..162f44da
--- /dev/null
+++ b/components/ApiReference/generated/worldchain-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-worldchain.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-worldchain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/worldchain/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-worldchain.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/xlayer-reference.mdx b/components/ApiReference/generated/xlayer-reference.mdx
new file mode 100644
index 00000000..028a82b7
--- /dev/null
+++ b/components/ApiReference/generated/xlayer-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-xlayer.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-xlayer.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/xlayer/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-xlayer.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/zkevm-reference.mdx b/components/ApiReference/generated/zkevm-reference.mdx
new file mode 100644
index 00000000..1a8fb10c
--- /dev/null
+++ b/components/ApiReference/generated/zkevm-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-zkevm.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-zkevm.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zkevm/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zkevm.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/generated/zksync-reference.mdx b/components/ApiReference/generated/zksync-reference.mdx
new file mode 100644
index 00000000..5d553435
--- /dev/null
+++ b/components/ApiReference/generated/zksync-reference.mdx
@@ -0,0 +1,2820 @@
+import Path from '../Path'
+import Hr from '../../Hr'
+import SampleRequestHeader from '../SampleRequestHeader'
+import Parameters from '../Parameter'
+import NetworkSwitcher from '../Network'
+import Responses from '../Response'
+import Feedback from '../../Feedback'
+import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
+import NextLink from 'next/link'
+import Link from '@mui/material/Link'
+
+# 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](../../../core-api/transaction-service-supported-networks), at different endpoints.
+
+
+
+
+
+## Contracts
+
+
+
+### List Contracts
+
+
+
+
+
+
+ Returns the list of known smart contracts with their ABI’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/contracts/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 16233,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/contracts/?limit=2&offset=3",
+ "previous": null,
+ "results": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "name": "MetaMultiSigWallet",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "MetaMultiSigWallet",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ },
+ {
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Specific Contract
+
+
+
+
+
+
+ Returns the relevant information of a known smart contract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/contracts/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",
+ "name": "Seaport",
+ "displayName": "",
+ "logoUri": null,
+ "contractAbi": {
+ "abi": [],
+ "description": "Seaport",
+ "relevance": 100
+ },
+ "trustedForDelegateCall": false
+}
+
+```
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-data-decoder--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/data-decoder/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "method": "transfer",
+ "parameters": [
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ },
+ {
+ "name": "value",
+ "type": "uint256",
+ "value": "10000000000000000000"
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Delegates
+
+
+
+### List Delegates
+
+
+
+
+
+
+ Returns a list with all the delegates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v2-delegates--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "delegate": "0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739",
+ "delegator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "label": "Sample Delegator 2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ ],
+ "Delegate": [
+ {"name": "delegateAddress", "type": "address"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "Delegate",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ },
+ "message": {
+ "delegateAddress": delegate_address,
+ "totp": totp,
+ },
+}
+```
+
+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).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v2-delegates--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v2/delegates/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v2-delegates-{delegate_address}--delete.ts
+```
+
+```bash curl
+curl -X DELETE https://safe-transaction-zksync.safe.global/api/api/v2/delegates/0xe8A11B18DA0C02ce6304347D8E0DA66C50dEf739/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Messages
+
+
+
+### Get Message
+
+
+
+
+
+
+ Returns detailed information on a message associated with a given message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-messages-{message_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/messages/0x3b3b57b3/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+}
+
+```
+
+
+
+
+### Sign Message
+
+
+
+
+
+
+ Adds the signature of a message given its message hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-messages-{message_hash}-signatures--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/messages/0x3b3b57b3/signatures/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Messages
+
+
+
+
+
+
+ Returns the list of messages for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-messages--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-29T16:59:00.807652Z",
+ "modified": "2024-07-29T16:59:00.807652Z",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "messageHash": "0x950cfe6090e742b709ab5f662c10c8b4e06d403a2f8c4654d86af45d93fa3777",
+ "message": "string message",
+ "proposedBy": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "safeAppId": null,
+ "confirmations": [
+ {
+ "created": "2024-07-29T16:59:00.843249Z",
+ "modified": "2024-07-29T16:59:00.843249Z",
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "signature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "preparedSignature": "0x5f12f647a876c1966cfbb785d78add0e504cdd0b56b9e21ac93a566d883f80af0192226678ffbe04b35efd23265f1b516a0b0920c679b13d9a5290af0c4b87931f"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-messages--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/messages/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+
+
+## Transactions
+
+
+
+### Get Module Transaction
+
+
+
+
+
+
+ Returns a transaction executed from a module given its associated module transaction ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/module-transaction/0x3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+}
+
+```
+
+
+
+
+### Get Multisig Transaction
+
+
+
+
+
+
+ Returns a multi-signature transaction given its Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "nonce": 0,
+ "executionDate": null,
+ "submissionDate": "2024-06-26T14:57:15.429517Z",
+ "modified": "2024-06-28T14:18:04.121072Z",
+ "blockNumber": null,
+ "transactionHash": null,
+ "safeTxHash": "0x897cab0528ffa8cbe10ee533e636d1a42b9e8d42f8dccb9af9006804d02d2027",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": null,
+ "isExecuted": false,
+ "isSuccessful": null,
+ "ethGasPrice": null,
+ "maxFeePerGas": null,
+ "maxPriorityFeePerGas": null,
+ "gasUsed": null,
+ "fee": null,
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-28T14:18:04.121072Z",
+ "transactionHash": null,
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": null
+}
+
+```
+
+
+
+
+### Delete Queued Multisig Transaction
+
+
+
+
+
+
+ Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction hash.
+Only the proposer or the delegate who proposed the transaction can delete it.
+If the transaction was proposed by a delegate, it must still be a valid delegate for the transaction proposer.
+An EOA is required to sign the following EIP-712 data:
+
+```python
+ {
+ "types": {
+ "EIP712Domain": [
+ {"name": "name", "type": "string"},
+ {"name": "version", "type": "string"},
+ {"name": "chainId", "type": "uint256"},
+ {"name": "verifyingContract", "type": "address"},
+ ],
+ "DeleteRequest": [
+ {"name": "safeTxHash", "type": "bytes32"},
+ {"name": "totp", "type": "uint256"},
+ ],
+ },
+ "primaryType": "DeleteRequest",
+ "domain": {
+ "name": "Safe Transaction Service",
+ "version": "1.0",
+ "chainId": chain_id,
+ "verifyingContract": safe_address,
+ },
+ "message": {
+ "safeTxHash": safe_tx_hash,
+ "totp": totp,
+ },
+}
+```
+
+`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)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE https://safe-transaction-zksync.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Multisig Confirmations
+
+
+
+
+
+
+ Returns the list of confirmations for the multi-signature transaction associated with
+the given Safe transaction hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T14:57:15.504003Z",
+ "transactionHash": null,
+ "signature": "0xec2c1cf656d997f92247ddf59f30ce718de990ec4f8d4670a37d3d3594862f0d49ad2c553daa2ff937c50d45e9ca6a815f826d29603f8c5c818cb698ddc2383a20",
+ "signatureType": "ETH_SIGN"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/multisig-transactions/0xa059b4571d8e6cf551eea796f9d86a414083bdc3d5d5be88486589a7b6214be2/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "signature": "0xfc32b5fdfa8517b44bd45c5d1e09ed898325e109e6b889fbf1584c158dcbe71b2de4a1e8d43b5d396c1da03381cbc3f8358295192d19ded2c12dda90227308b720"
+}
+
+```
+
+
+
+
+### 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`
+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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-all-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/all-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "transfers": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-26T15:41:48Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da960,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ],
+ "txType": "MULTISIG_TRANSACTION"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List Incoming Transfers
+
+
+
+
+
+
+ Returns incoming ether/tokens transfers for a Safe.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/incoming-transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-06-25T11:19:00Z",
+ "blockNumber": 6183150,
+ "transactionHash": "0x28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "to": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "value": "10000000000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i28fd99978fe7a05160f8da40311cb2e796f17d23f7a3eaea243d4a7f2f636924",
+ "tokenInfo": null,
+ "from": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2"
+ }
+ ]
+}
+
+```
+
+
+
+
+### List a Safe's Module Transactions
+
+
+
+
+
+
+ Returns all the transactions executed from modules given a Safe address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-module-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/module-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-24T20:54:48Z",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "isSuccessful": true,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "module": "0x9085149079b87E32178669097bc82D341CB65678",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "data": "0x00",
+ "operation": 0,
+ "dataDecoded": null,
+ "moduleTransactionId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-multisig-transactions--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "safe": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
+ "value": "50000000000000",
+ "data": null,
+ "operation": 0,
+ "gasToken": "0x0000000000000000000000000000000000000000",
+ "safeTxGas": 0,
+ "baseGas": 0,
+ "gasPrice": "0",
+ "refundReceiver": "0x0000000000000000000000000000000000000000",
+ "nonce": 0,
+ "executionDate": "2024-06-26T15:41:48Z",
+ "submissionDate": "2024-06-26T15:18:33.817634Z",
+ "modified": "2024-06-26T15:41:49.400858Z",
+ "blockNumber": 6191662,
+ "transactionHash": "0x2ecba24115d057bb74c1885b2a16a38b3929992fd52ed69dc8d0df24f765da96",
+ "safeTxHash": "0xfc01da65f3a1dea769f4ad9067d41c5477a2ec5316d6b54165de212cd1681992",
+ "proposer": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "executor": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "isExecuted": true,
+ "isSuccessful": true,
+ "ethGasPrice": "61733665357",
+ "maxFeePerGas": "131260008170",
+ "maxPriorityFeePerGas": "1000000000",
+ "gasUsed": 91398,
+ "fee": "5642333546299086",
+ "origin": "{}",
+ "dataDecoded": null,
+ "confirmationsRequired": 2,
+ "confirmations": [
+ {
+ "owner": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "submissionDate": "2024-06-26T15:18:33.901378Z",
+ "transactionHash": null,
+ "signature": "0x331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f",
+ "signatureType": "ETH_SIGN"
+ },
+ {
+ "owner": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "submissionDate": "2024-06-26T15:27:29.512252Z",
+ "transactionHash": null,
+ "signature": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f",
+ "signatureType": "ETH_SIGN"
+ }
+ ],
+ "trusted": true,
+ "signatures": "0xd26842f2bd17eeed83a0f9fb010efc1716ed982e62cc05fe61a314827c226d534ddab07482795521b20c32d764ddc4d3fc602c3113b4c540c420e72b923b92c91f331d8584f5514c1cf1cfe1edd873228e428dafc0c78c5480c34c9868e9075d9622d8334d052037b1566241c8d0ecfbdb02c99b59a9e06d97974e1eaa55f502811f"
+ }
+ ],
+ "countUniqueNonce": 1
+}
+
+```
+
+
+
+
+### Create Multisig Transaction
+
+
+
+
+
+
+ Creates a multi-signature transaction for a given Safe account with its confirmations and
+retrieves all the information related.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-multisig-transactions--post.ts
+```
+
+```bash curl
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "45683"
+}
+
+```
+
+
+
+
+### Estimate Gas Costs for a Multisig Transaction
+
+
+
+
+
+
+ Returns the estimated `safeTxGas` for a given Safe address and multi-signature transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/multisig-transactions/estimations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safeTxGas": "42806"
+}
+
+```
+
+
+
+
+### List Transfers
+
+
+
+
+
+
+ Returns the list of token transfers for a given Safe address.
+Only 1000 newest transfers will be returned.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/transfers/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get Transfer
+
+
+
+
+
+
+ Returns a token transfer associated with the given transfer ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/transfer/3b3b57b3 \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ETHER_TRANSFER",
+ "executionDate": "2024-07-24T20:54:48Z",
+ "blockNumber": 6369595,
+ "transactionHash": "0x4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e",
+ "to": "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d",
+ "value": "10000000000",
+ "tokenId": null,
+ "tokenAddress": null,
+ "transferId": "i4c8bc3a9f32eed6b4cb8225d6884e9c7006d6740b0a6896cee7b254aa037920e0,0,0",
+ "tokenInfo": null,
+ "from": "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+}
+
+```
+
+
+
+
+
+
+## Modules
+
+
+
+### List Safes that use a Specific Module
+
+
+
+
+
+
+ Returns the list of Safes that have the provided module enabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-modules-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/modules/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": ["0x5298A93734C3D979eF1f23F78eBB871879A21F22"]
+}
+
+```
+
+
+
+
+
+
+## Owners
+
+
+
+### List Safes from a Specific Owner
+
+
+
+
+
+
+ Returns the list of Safe accounts that have the given address as their owner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-owners-{address}-safes--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/owners/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safes/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "safes": [
+ "0xd0540ECBB3010E5f8d780B62Af3aB936fB6C0c75",
+ "0x44eBdc9aCE42d6742a3df2813CB437834e6F05B0",
+ "0x25D641a9eE275CE94b64bE1227e610b77e776522",
+ "0xeFEe5E6394a02eE0ba61731Da014eE8aE8BcDe83",
+ "0xCfF743C4445eAd58105a793B34eB02125e830dB0",
+ "0x27000f745b020bD386D7712A4ca32AF7a2E3A7Fe",
+ "0xb53a6B6f67847cfF94fDb94B90345cB45a2c7301",
+ "0x1f01FC62f168099493705bDF7A05b539946832bc",
+ "0x5298A93734C3D979eF1f23F78eBB871879A21F22"
+ ]
+}
+
+```
+
+
+
+
+
+
+## 4337
+
+
+
+### Get Safe Operation
+
+
+
+
+
+
+ Returns a SafeOperation given its Safe operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+}
+
+```
+
+
+
+
+### Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+ Get the list of confirmations for a multisig transaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ]
+}
+
+```
+
+
+
+
+### 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/safe-operations/0x597ba36c626a32a4fcc9f23a4b25605ee30b46584918d6b6442387161dc3c51b/confirmations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List Safe Operations
+
+
+
+
+
+
+ Returns the list of SafeOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "userOperation": {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Create Safe Operation
+
+
+
+
+
+
+ Adds a new SafeOperation for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/safe-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+ -d '{}'
+```
+
+
+
+ #### Sample Response
+
+```json
+Empty Response
+
+```
+
+
+
+
+### List User Operations
+
+
+
+
+
+
+ Returns the list of UserOperations for a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/user-operations/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+ }
+ ]
+}
+
+```
+
+
+
+
+### Get User Operation
+
+
+
+
+
+
+ Returns a UserOperation given its user operation hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-user-operations-{user_operation_hash}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/user-operations/0xe6dac94a3cdbab8d807dfbe79ec378713403ff60cb1a1fff09696813d2705b8e/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "ethereumTxHash": "0xfe7bc7fcab04ad689e1c5fcca7ad5345481fddc462880655a9a39b827da7b4ac",
+ "sender": "0x125eb8CcAC85EA322C3859648509823CA05aD7e5",
+ "userOperationHash": "0x3545a04aa1d10b74164af413253ab0881c86ebe219e166207b3175923202bbc7",
+ "nonce": 0,
+ "initCode": "0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec671688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060ad27de2a410652abce96ea0fdfc30c2f0fd35952b78f554667111999a28ff3380000000000000000000000000000000000000000000000000000000000000344b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000038869bf66a61cf6bdb996a6ae40d5853fd43b5260000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b40370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f100000000000000000000000000000000000000000000000000000000000001c48d80ff0a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000172018ecd4ec46d4d2a6b64fe960b3d64e8b94b2234eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000648d0dc49f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a581c4a4db7175302464ff3c06380bc3270b403701608cf2e3412c6bda14e6d8a0a7d27c4240fed6f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640dd9692f4255f6101637c8b43bf63660ffba39cab522b053094b2a07535d7d848ce5efca9aae34aabaee7600328bb0fb5f6a6c5214c8db9303f824f52f2fca42f2b342ce000000000000000000000000ca89cba4813d5b40aec6e57a30d0eeb500d6531b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callData": "0x7bb3742800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "callGasLimit": 198268,
+ "verificationGasLimit": 3867576,
+ "preVerificationGas": 110646,
+ "maxFeePerGas": 36776375378,
+ "maxPriorityFeePerGas": 199436407,
+ "paymaster": "0xDFF7FA1077Bce740a6a212b3995990682c0Ba66d",
+ "paymasterData": "0x00000000000000000000000000000000000000000000000000000000669e2fe1000000000000000000000000000000000000000000000000000000000000000037a31ba85cc6a4753d5fb73e475ddf22c9ab9a9ce405fdff217c03bff161bc893e7658160bd3cabaefad55b2d5751713484b8b90ef54d85e356916b4fede3dc11b",
+ "signature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "entryPoint": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
+ "safeOperation": {
+ "created": "2024-07-22T10:00:18.892702Z",
+ "modified": "2024-07-22T10:00:18.892702Z",
+ "safeOperationHash": "0xb59828b1d3b0363641e3bb4d72dd63565d1062a40c6d05469caa0218ce8e0445",
+ "validAfter": null,
+ "validUntil": null,
+ "moduleAddress": "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
+ "confirmations": [
+ {
+ "created": "2024-07-22T10:00:18.898708Z",
+ "modified": "2024-07-22T10:00:18.898708Z",
+ "owner": "0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1",
+ "signature": "0x000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f",
+ "signatureType": "CONTRACT_SIGNATURE"
+ }
+ ],
+ "preparedSignature": "0x000000000000000000000000000000000000000000000000608cf2e3412c6bda14e6d8a0a7d27c4240fed6f10000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e053c4ce48756bae15e3454ad75ee8d4ba9764ea37ed561b216701c3630c0521774f94a8b7351780daa4a241792f52089af776e0898185318053201a92865b08d0000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c736500000000000000000000001f"
+ }
+}
+
+```
+
+
+
+
+
+
+## Safes
+
+
+
+### Get Safe Status
+
+
+
+
+
+
+ Returns detailed information of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "address": "0x5298A93734C3D979eF1f23F78eBB871879A21F22",
+ "nonce": 6,
+ "threshold": 2,
+ "owners": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ],
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "modules": [
+ "0x9085149079b87E32178669097bc82D341CB65678",
+ "0xFBbFe0716F25045975f193cccBDbE2a995840657",
+ "0xB4F5e59987549a2586976e8957962dBD54a26FD0"
+ ],
+ "fallbackHandler": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
+ "guard": "0x0000000000000000000000000000000000000000",
+ "version": "1.3.0+L2"
+}
+
+```
+
+
+
+
+### List a Safe's Balances (Deprecated)
+
+
+
+
+
+
+ Get balance for Ether and ERC20 tokens of a given Safe account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### Get Safe Creation Status
+
+
+
+
+
+
+ Returns detailed information on the Safe creation transaction of a given Safe.
+
+Note: When event indexing is being used and multiple Safes are deployed in the same transaction
+the result might not be accurate due to the indexer not knowing which events belong to which Safe
+deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-safes-{address}-creation--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/creation/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "created": "2024-06-25T11:18:48Z",
+ "creator": "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "transactionHash": "0x6404e0298423c092cc1ce486f3f72172a1c0f2f28a9b29f69e605ea825360ac5",
+ "factoryAddress": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
+ "masterCopy": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
+ "setupData": "0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000017062a1de2fe6b99be3d9d37841fed19f5738040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a6d3debaab2b8093e69109f23a75501f864f74e20000000000000000000000003a16e3090e32dded2250e862b9d5610bef13e93d0000000000000000000000000000000000000000000000000000000000000000",
+ "dataDecoded": {
+ "method": "setup",
+ "parameters": [
+ {
+ "name": "_owners",
+ "type": "address[]",
+ "value": [
+ "0xa6d3DEBAAB2B8093e69109f23A75501F864F74e2",
+ "0x3A16E3090e32DDeD2250E862B9d5610BEF13e93d"
+ ]
+ },
+ {
+ "name": "_threshold",
+ "type": "uint256",
+ "value": "2"
+ },
+ {
+ "name": "to",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "data",
+ "type": "bytes",
+ "value": "0x"
+ },
+ {
+ "name": "fallbackHandler",
+ "type": "address",
+ "value": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804"
+ },
+ {
+ "name": "paymentToken",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ },
+ {
+ "name": "payment",
+ "type": "uint256",
+ "value": "0"
+ },
+ {
+ "name": "paymentReceiver",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ ]
+ },
+ "userOperation": null
+}
+
+```
+
+
+
+
+### Get Safe Balances
+
+
+
+
+
+
+ Get paginated balances for Ether and ERC20 tokens.
+The maximum limit allowed is 200.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/balances/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+[
+ // Native coin (Sepolia ETH):
+ {
+ "tokenAddress": null,
+ "token": null,
+ "balance": "9899990000000000"
+ },
+ // ERC20 token:
+ {
+ "tokenAddress": "0x0D5b70467E61125b242E70831aEd15D7C12E3F0D",
+ "token": {
+ "name": "SampleToken",
+ "symbol": "ST",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x0D5b70467E61125b242E70831aEd15D7C12E3F0D.png"
+ },
+ "balance": "10000000000000000000"
+ }
+]
+
+```
+
+
+
+
+### List Collectibles
+
+
+
+
+
+
+ Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.
+The maximum limit allowed is 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v2/safes/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/collectibles/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "address": "0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490",
+ "tokenName": "SampleNft",
+ "tokenSymbol": "SN",
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0xa0D601bc48Bae6D64bB19d325f8A6618A4da9490.png",
+ "id": "1",
+ "uri": null,
+ "name": null,
+ "description": null,
+ "imageUri": null,
+ "metadata": {}
+ }
+ ]
+}
+
+```
+
+
+
+
+
+
+## Tokens
+
+
+
+### List Tokens
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-tokens--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/tokens/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "count": 1846,
+ "next": "https://safe-transaction-sepolia.safe.global/api/v1/tokens/?limit=10&offset=10",
+ "previous": null,
+ "results": [
+ {
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+ }
+ // ...
+ ]
+}
+
+```
+
+
+
+
+### Get a Specific Token's Information
+
+
+
+
+
+
+ Returns detailed information on a given token supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```js TypeScript
+// from ../examples/zksync/-v1-tokens-{address}--get.ts
+```
+
+```bash curl
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/tokens/0xcd2E72aEBe2A203b84f46DEEC948E6465dB51c75/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+ #### Sample Response
+
+```json
+{
+ "type": "ERC20",
+ "address": "0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d",
+ "name": "0x5555.com",
+ "symbol": "0x5555.com",
+ "decimals": 18,
+ "logoUri": "https://safe-transaction-assets.safe.global/tokens/logos/0x687e43D0aB3248bDfebFE3E8f9F1AB2B9FcE982d.png",
+ "trusted": false
+}
+
+```
+
+
+
+
+### /api/v1/tokens/lists/ - GET
+
+
+
+
+
+
+ Returns the list of tokens supported in the Safe Transaction Service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v1/tokens/lists/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
+
+
+## Analytics
+
+
+
+### /api/v2/analytics/multisig-transactions/by-origin/ - GET
+
+
+
+
+
+
+ undefined
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET https://safe-transaction-zksync.safe.global/api/api/v2/analytics/multisig-transactions/by-origin/ \
+ -H "Accept: application/json" \
+ -H "content-type: application/json" \
+
+```
+
+
+
+
+
+
+
+
diff --git a/components/ApiReference/schemas/arbitrum-swagger.json b/components/ApiReference/schemas/arbitrum-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/arbitrum-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/aurora-swagger.json b/components/ApiReference/schemas/aurora-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/aurora-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/avalanche-swagger.json b/components/ApiReference/schemas/avalanche-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/avalanche-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/base-sepolia-swagger.json b/components/ApiReference/schemas/base-sepolia-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/base-sepolia-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/base-swagger.json b/components/ApiReference/schemas/base-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/base-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/blast-swagger.json b/components/ApiReference/schemas/blast-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/blast-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/bsc-swagger.json b/components/ApiReference/schemas/bsc-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/bsc-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/celo-swagger.json b/components/ApiReference/schemas/celo-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/celo-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/chiado-swagger.json b/components/ApiReference/schemas/chiado-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/chiado-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/gnosis-chain-swagger.json b/components/ApiReference/schemas/gnosis-chain-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/gnosis-chain-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/linea-swagger.json b/components/ApiReference/schemas/linea-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/linea-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/mainnet-swagger.json b/components/ApiReference/schemas/mainnet-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/mainnet-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/mantle-swagger.json b/components/ApiReference/schemas/mantle-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/mantle-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/optimism-swagger.json b/components/ApiReference/schemas/optimism-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/optimism-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/polygon-swagger.json b/components/ApiReference/schemas/polygon-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/polygon-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/scroll-swagger.json b/components/ApiReference/schemas/scroll-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/scroll-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/sepolia-swagger.json b/components/ApiReference/schemas/sepolia-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/sepolia-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/worldchain-swagger.json b/components/ApiReference/schemas/worldchain-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/worldchain-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/xlayer-swagger.json b/components/ApiReference/schemas/xlayer-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/xlayer-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/zkevm-swagger.json b/components/ApiReference/schemas/zkevm-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/zkevm-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/components/ApiReference/schemas/zksync-swagger.json b/components/ApiReference/schemas/zksync-swagger.json
new file mode 100644
index 00000000..fdf878ae
--- /dev/null
+++ b/components/ApiReference/schemas/zksync-swagger.json
@@ -0,0 +1,6236 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Safe Transaction Service",
+ "version": "5.15.0",
+ "description": "API to keep track of transactions sent via Safe smart contracts"
+ },
+ "paths": {
+ "/api/v1/about/": {
+ "get": {
+ "operationId": "about_retrieve",
+ "description": "Returns information and configuration of the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/",
+ "title": "General Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/deployments/": {
+ "get": {
+ "operationId": "about_deployments_list",
+ "description": "Returns a list of safe deployments by version",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "version",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe version"
+ },
+ {
+ "in": "query",
+ "name": "contract",
+ "schema": {
+ "type": "string"
+ },
+ "description": "Filter by Safe contract name"
+ }
+ ],
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeployment"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Provided version does not exist"
+ }
+ },
+ "path": "/api/v1/about/deployments/",
+ "title": "List deployments",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/ethereum-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_rpc_retrieve",
+ "description": "Get information about the Ethereum RPC node used by the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-rpc/",
+ "title": "Ethereum RPC",
+ "additionalInfo": "This is an example of more detailed information about Ethereum RPC endpoint. This should support MDX."
+ }
+ },
+ "/api/v1/about/ethereum-tracing-rpc/": {
+ "get": {
+ "operationId": "about_ethereum_tracing_rpc_retrieve",
+ "description": "Get information about the Ethereum Tracing RPC node used by the service (if any configured)",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/about/ethereum-tracing-rpc/",
+ "title": "Ethereum Tracing RPC",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/indexing/": {
+ "get": {
+ "operationId": "about_indexing_retrieve",
+ "description": "Get current indexing status for ERC20/721 events",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexingStatus"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/indexing/",
+ "title": "Indexing",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/about/singletons/": {
+ "get": {
+ "operationId": "about_singletons_list",
+ "description": "Returns a list of Master Copies configured in the service",
+ "tags": [
+ "about"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MasterCopyResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/about/singletons/",
+ "title": "Singletons",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/": {
+ "get": {
+ "operationId": "contracts_list",
+ "description": "Returns the list of known smart contracts with their ABI’s",
+ "parameters": [
+ {
+ "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": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedContractList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/",
+ "title": "List Contracts",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/contracts/{address}/": {
+ "get": {
+ "operationId": "contracts_retrieve",
+ "description": "Returns the relevant information of a known smart contract",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "contracts"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/contracts/{address}/",
+ "title": "Get Specific Contract",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/data-decoder/": {
+ "post": {
+ "operationId": "data_decoder_create",
+ "description": "Returns the decoded data using the Safe Transaction Service internal ABI information given\nthe transaction data as a `0x` prefixed hexadecimal string.\nIf the address of the receiving contract is provided, the decoded data will be more accurate,\nas in case of an ABI collision the Safe Transaction Service would know which ABI to use.",
+ "tags": [
+ "data-decoder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DataDecoder"
+ }
+ }
+ },
+ "description": "Decoded data"
+ },
+ "404": {
+ "description": "Cannot find function selector to decode data"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/data-decoder/",
+ "title": "Get Decoded Data",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/": {
+ "get": {
+ "operationId": "delegates_list",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided\nFor the signature we are using TOTP 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)\nTo generate the signature, this hash needs to be signed: keccak(checksummed address + str(int(current_epoch //\n3600)))\nAs an example, if the 0x132512f995866CcE1b0092384A6118EDaF4508Ff delegate is added and epoch=1586779140:\n - `TOTP = epoch // 3600 = 1586779140 // 3600 = 440771`\n - keccak(\"0x132512f995866CcE1b0092384A6118EDaF4508Ff440771\") would be the hash a Safe owner would\n need to sign.`",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Delegate"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v1/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy",
+ "description": "Delete every pair delegate/delegator found. Signature is built the same way as for adding a delegate,\nbut in this case the signer can be either the `delegator` (owner) or the `delegate` itself.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v1/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/": {
+ "get": {
+ "operationId": "messages_retrieve",
+ "description": "Returns detailed information on a message associated with a given message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/",
+ "title": "Get Message",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/messages/{message_hash}/signatures/": {
+ "post": {
+ "operationId": "messages_signatures_create",
+ "description": "Adds the signature of a message given its message hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "message_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessageSignature"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/messages/{message_hash}/signatures/",
+ "title": "Sign Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/module-transaction/{module_transaction_id}",
+ "title": "Get Module Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/modules/{address}/safes/": {
+ "get": {
+ "operationId": "modules_safes_retrieve",
+ "description": "Returns the list of Safes that have the provided module enabled",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "modules"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ModulesResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Module address checksum not valid"
+ }
+ },
+ "path": "/api/v1/modules/{address}/safes/",
+ "title": "List Safes that use a Specific Module",
+ "additionalInfo": ""
+ }
+ },
+ "/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": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Get Multisig Transaction",
+ "additionalInfo": ""
+ },
+ "delete": {
+ "operationId": "multisig_transactions_destroy",
+ "description": "Removes the queued but not executed multi-signature transaction associated with the given Safe tansaction 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": "Deleted"
+ },
+ "400": {
+ "description": "Error processing data"
+ },
+ "404": {
+ "description": "Transaction not found"
+ }
+ },
+ "path": "/api/v1/multisig-transactions/{safe_tx_hash}/",
+ "title": "Delete Queued Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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\nthe 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": "/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\ngiven Safe transaction hash. Multiple signatures can be submitted at once. This endpoint\ndoes 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": "/api/v1/multisig-transactions/{safe_tx_hash}/confirmations/",
+ "title": "Confirm Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/": {
+ "post": {
+ "operationId": "notifications_devices_create",
+ "description": "Creates a new FirebaseDevice. If uuid is not provided a new device will be created.\nIf a uuid for an existing Safe is provided the FirebaseDevice will be updated with all the new data provided.\nSafes provided on the request are always added and never removed/replaced\nSignature must sign `keccack256('gnosis-safe{timestamp-epoch}{uuid}{cloud_messaging_token}{safes_sorted}':\n - `{timestamp-epoch}` must be an integer (no milliseconds)\n - `{safes_sorted}` must be checksummed safe addresses sorted and joined with no spaces",
+ "tags": [
+ "notifications"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDevice"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FirebaseDeviceSerializerWithOwnersResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/notifications/devices/",
+ "title": "Create Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/": {
+ "delete": {
+ "operationId": "notifications_devices_destroy",
+ "description": "Remove a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/",
+ "title": "Delete Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/notifications/devices/{uuid}/safes/{address}/": {
+ "delete": {
+ "operationId": "notifications_devices_safes_destroy",
+ "description": "Remove a Safe for a FirebaseDevice",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "uuid",
+ "schema": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "description": "A UUID string identifying this Firebase Device.",
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "notifications"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v1/notifications/devices/{uuid}/safes/{address}/",
+ "title": "Remove a Safe from a Device",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/owners/{address}/safes/": {
+ "get": {
+ "operationId": "owners_safes_retrieve",
+ "description": "Returns the list of Safe accounts that have the given address as their owner",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "owners"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/OwnerResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Owner address checksum not valid"
+ }
+ },
+ "path": "/api/v1/owners/{address}/safes/",
+ "title": "List Safes from a Specific Owner",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/": {
+ "get": {
+ "operationId": "safe_operations_retrieve",
+ "description": "Returns a SafeOperation given its Safe operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/",
+ "title": "Get Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safe-operations/{safe_operation_hash}/confirmations/": {
+ "get": {
+ "operationId": "safe_operations_confirmations_list",
+ "description": "Get the list of confirmations for a multisig transaction",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationConfirmationResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Get the list of confirmations for a multisig transaction",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safe_operations_confirmations_create",
+ "description": "Add a confirmation for a transaction. More than one signature can be used. This endpoint does not support\nthe use of delegates to make a transaction trusted.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "safe_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperationConfirmation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "422": {
+ "description": "Error processing data"
+ }
+ },
+ "path": "/api/v1/safe-operations/{safe_operation_hash}/confirmations/",
+ "title": "Add a confirmation for a transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/": {
+ "get": {
+ "operationId": "safes_retrieve",
+ "description": "Returns detailed information of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "code = 1: Checksum address validation failed\ncode = 50: Cannot get Safe info"
+ }
+ },
+ "path": "/api/v1/safes/{address}/",
+ "title": "Get Safe Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/all-transactions/": {
+ "get": {
+ "operationId": "safes_all_transactions_list",
+ "description": "Returns all the *executed* transactions for a given Safe address.\nThe list has different structures depending on the transaction type:\n- Multisig Transactions for a Safe. `tx_type=MULTISIG_TRANSACTION`.\n- Module Transactions for a Safe. `tx_type=MODULE_TRANSACTION`\n- Incoming Transfers of Ether/ERC20 Tokens/ERC721 Tokens. `tx_type=ETHEREUM_TRANSACTION`\nOrdering_fields: [\"timestamp\"] eg: `-timestamp` (default one) or `timestamp`\n\nNote: This endpoint has a bug that will be fixed in next versions of the endpoint. Pagination is done\nusing the `Transaction Hash`, and due to that the number of relevant transactions with the same\n`Transaction Hash` cannot be known beforehand. So if there are only 2 transactions\nwith the same `Transaction Hash`, `count` of the endpoint will be 1\nbut 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/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": "/api/v1/safes/{address}/all-transactions/",
+ "title": "List Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve",
+ "description": "Get balance for Ether and ERC20 tokens of a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeBalanceResponse"
+ }
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v1/safes/{address}/balances/",
+ "title": "List a Safe's Balances (Deprecated)",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/creation/": {
+ "get": {
+ "operationId": "safes_creation_retrieve",
+ "description": "Returns detailed information on the Safe creation transaction of a given Safe.\n\nNote: When event indexing is being used and multiple Safes are deployed in the same transaction\nthe result might not be accurate due to the indexer not knowing which events belong to which Safe\ndeployment.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeCreationInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe creation not found"
+ },
+ "422": {
+ "description": "Owner address checksum not valid"
+ },
+ "503": {
+ "description": "Problem connecting to Ethereum network"
+ }
+ },
+ "path": "/api/v1/safes/{address}/creation/",
+ "title": "Get Safe Creation Status",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "safes_delegates_destroy",
+ "description": "Delete a delegate for a Safe. Signature is built the same way that for adding a delegate.\nCheck `POST /delegates/`",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "deprecated": true,
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid Ethereum address | Error processing data"
+ }
+ },
+ "path": "/api/v1/safes/{address}/delegates/{delegate_address}/",
+ "title": "Remove Delegate from Safe",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/incoming-transfers/": {
+ "get": {
+ "operationId": "safes_incoming_transfers_list",
+ "description": "Returns incoming ether/tokens transfers for a Safe.\nOnly 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": "/api/v1/safes/{address}/incoming-transfers/",
+ "title": "List Incoming Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/messages/": {
+ "get": {
+ "operationId": "safes_messages_list",
+ "description": "Returns the list of messages for a given Safe account",
+ "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": [
+ "messages"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeMessageResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "List Messages",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_messages_create",
+ "description": "Adds a new message for a given Safe account.\nMessage can be:\n- A ``string``, so ``EIP191`` will be used to get the hash.\n- An ``EIP712`` ``object``.\n\nHash will be calculated from the provided ``message``. Sending a raw ``hash`` will not be accepted,\nservice needs to derive it itself.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "messages"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMessage"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "description": "Created"
+ }
+ },
+ "path": "/api/v1/safes/{address}/messages/",
+ "title": "Create Signed Message",
+ "additionalInfo": ""
+ }
+ },
+ "/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\n* `1` - DELEGATE_CALL\n* `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": "/api/v1/safes/{address}/module-transactions/",
+ "title": "List a Safe's Module Transactions",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/multisig-transactions/": {
+ "get": {
+ "operationId": "safes_multisig_transactions_list",
+ "description": "Returns all the multi-signature transactions for a given Safe address.\nBy 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": []
+ },
+ {}
+ ],
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "List a Safe's Multisig Transactions",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_multisig_transactions_create",
+ "description": "Creates a multi-signature transaction for a given Safe account with its confirmations and\nretrieves 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": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeMultisigTransaction"
+ }
+ }
+ },
+ "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": "/api/v1/safes/{address}/multisig-transactions/",
+ "title": "Create Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/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",
+ "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": "/api/v1/safes/{address}/multisig-transactions/estimations/",
+ "title": "Estimate Gas Costs for a Multisig Transaction",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/safe-operations/": {
+ "get": {
+ "operationId": "safes_safe_operations_list",
+ "description": "Returns the list of SafeOperations for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "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": "valid_after__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_after__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gt",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__lte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "valid_until__gte",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "in": "query",
+ "name": "module_address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "executed",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "in": "query",
+ "name": "has_confirmations",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeOperationWithUserOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "List Safe Operations",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "safes_safe_operations_create",
+ "description": "Adds a new SafeOperation for a given Safe account",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SafeOperation"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Unspecified response body"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/safe-operations/",
+ "title": "Create Safe Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/transfers/": {
+ "get": {
+ "operationId": "safes_transfers_list",
+ "description": "Returns the list of token transfers for a given Safe address.\nOnly 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": "/api/v1/safes/{address}/transfers/",
+ "title": "List Transfers",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/safes/{address}/user-operations/": {
+ "get": {
+ "operationId": "safes_user_operations_list",
+ "description": "Returns the list of UserOperations for a given Safe account",
+ "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": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedUserOperationWithSafeOperationResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/safes/{address}/user-operations/",
+ "title": "List User Operations",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/": {
+ "get": {
+ "operationId": "tokens_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "name",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "symbol",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__lt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals__gt",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "decimals",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "name": "search",
+ "required": false,
+ "in": "query",
+ "description": "A search term.",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenInfoResponseList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/",
+ "title": "List Tokens",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/{address}/": {
+ "get": {
+ "operationId": "tokens_retrieve",
+ "description": "Returns detailed information on a given token supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ },
+ "description": ""
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Invalid ethereum address"
+ }
+ },
+ "path": "/api/v1/tokens/{address}/",
+ "title": "Get a Specific Token's Information",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/tokens/lists/": {
+ "get": {
+ "operationId": "tokens_lists_list",
+ "description": "Returns the list of tokens supported in the Safe Transaction Service",
+ "parameters": [
+ {
+ "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": [
+ "tokens"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedTokenListList"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/tokens/lists/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/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": "/api/v1/transfer/{transfer_id}",
+ "title": "Get Transfer",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v1/user-operations/{user_operation_hash}/": {
+ "get": {
+ "operationId": "user_operations_retrieve",
+ "description": "Returns a UserOperation given its user operation hash",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "user_operation_hash",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "4337"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ },
+ "description": ""
+ }
+ },
+ "path": "/api/v1/user-operations/{user_operation_hash}/",
+ "title": "Get User Operation",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/analytics/multisig-transactions/by-origin/": {
+ "get": {
+ "operationId": "analytics_multisig_transactions_by_origin_retrieve",
+ "tags": [
+ "analytics"
+ ],
+ "security": [
+ {
+ "tokenAuth": []
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "No response body"
+ }
+ },
+ "path": "/api/v2/analytics/multisig-transactions/by-origin/",
+ "title": "",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/": {
+ "get": {
+ "operationId": "delegates_list_2",
+ "description": "Returns a list with all the delegates",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "safe",
+ "schema": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegate",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "delegator",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "label",
+ "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": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeDelegateResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "400": {
+ "description": "Invalid data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "List Delegates",
+ "additionalInfo": ""
+ },
+ "post": {
+ "operationId": "delegates_create_2",
+ "description": "Adds a new Safe delegate with a custom label. Calls with same delegate but different label or\nsigner will update the label or delegator if a different one is provided.\nTo generate the signature, the following EIP712 data hash needs to be signed:\n\n```python\n {\n \"types\": {\n \"EIP712Domain\": [\n {\"name\": \"name\", \"type\": \"string\"},\n {\"name\": \"version\", \"type\": \"string\"},\n {\"name\": \"chainId\", \"type\": \"uint256\"},\n ],\n \"Delegate\": [\n {\"name\": \"delegateAddress\", \"type\": \"address\"},\n {\"name\": \"totp\", \"type\": \"uint256\"},\n ],\n },\n \"primaryType\": \"Delegate\",\n \"domain\": {\n \"name\": \"Safe Transaction Service\",\n \"version\": \"1.0\",\n \"chainId\": chain_id,\n },\n \"message\": {\n \"delegateAddress\": delegate_address,\n \"totp\": totp,\n },\n}\n```\n\nFor the signature we use `TOTP` 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).",
+ "tags": [
+ "delegates"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelegateSerializerV2"
+ }
+ }
+ },
+ "required": true
+ },
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted"
+ },
+ "400": {
+ "description": "Malformed data"
+ }
+ },
+ "path": "/api/v2/delegates/",
+ "title": "Create Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/delegates/{delegate_address}/": {
+ "delete": {
+ "operationId": "delegates_destroy_2",
+ "description": "Removes every delegate/delegator pair found associated with a given delegate address. The\nsignature is built the same way as for adding a delegate, but in this case the signer can be\neither the `delegator` (owner) or the `delegate` itself. Check `POST /delegates/` to learn more.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "delegate_address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ }
+ ],
+ "tags": [
+ "delegates"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "204": {
+ "description": "Deleted"
+ },
+ "400": {
+ "description": "Malformed data"
+ },
+ "404": {
+ "description": "Delegate not found"
+ },
+ "422": {
+ "description": "Invalid Ethereum address/Error processing data"
+ }
+ },
+ "path": "/api/v2/delegates/{delegate_address}/",
+ "title": "Delete Delegate",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/balances/": {
+ "get": {
+ "operationId": "safes_balances_retrieve_2",
+ "description": "Get paginated balances for Ether and ERC20 tokens.\nThe maximum limit allowed is 200.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/balances/",
+ "title": "Get Safe Balances",
+ "additionalInfo": ""
+ }
+ },
+ "/api/v2/safes/{address}/collectibles/": {
+ "get": {
+ "operationId": "safes_collectibles_retrieve",
+ "description": "Get paginated collectibles (ERC721 tokens) and information about them of a given Safe account.\nThe maximum limit allowed is 10.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "address",
+ "schema": {
+ "type": "string"
+ },
+ "required": true
+ },
+ {
+ "in": "query",
+ "name": "trusted",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` just trusted tokens will be returned"
+ },
+ {
+ "in": "query",
+ "name": "exclude_spam",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ },
+ "description": "If `True` spam tokens will not be returned"
+ },
+ {
+ "in": "query",
+ "name": "limit",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "Number of results to return per page."
+ },
+ {
+ "in": "query",
+ "name": "offset",
+ "schema": {
+ "type": "integer"
+ },
+ "description": "The initial index from which to return the results."
+ }
+ ],
+ "tags": [
+ "safes"
+ ],
+ "security": [
+ {
+ "cookieAuth": []
+ },
+ {
+ "tokenAuth": []
+ },
+ {}
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PaginatedSafeCollectibleResponseList"
+ }
+ }
+ },
+ "description": ""
+ },
+ "404": {
+ "description": "Safe not found"
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CodeErrorResponse"
+ }
+ }
+ },
+ "description": "Safe address checksum not valid"
+ }
+ },
+ "path": "/api/v2/safes/{address}/collectibles/",
+ "title": "List Collectibles",
+ "additionalInfo": ""
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AllTransactionsSchema": {
+ "type": "object",
+ "description": "Just for the purpose of documenting, don't use it",
+ "properties": {
+ "txType1": {
+ "$ref": "#/components/schemas/SafeModuleTransactionWithTransfersResponse"
+ },
+ "txType2": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionWithTransfersResponse"
+ },
+ "txType3": {
+ "$ref": "#/components/schemas/EthereumTxWithTransfersResponse"
+ }
+ },
+ "required": [
+ "txType1",
+ "txType2",
+ "txType3"
+ ]
+ },
+ "CodeErrorResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "arguments": {
+ "type": "array",
+ "items": {}
+ }
+ },
+ "required": [
+ "arguments",
+ "code",
+ "message"
+ ]
+ },
+ "Contract": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "contractAbi": {
+ "$ref": "#/components/schemas/ContractAbi"
+ },
+ "trustedForDelegateCall": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "contractAbi",
+ "displayName",
+ "logoUri",
+ "name",
+ "trustedForDelegateCall"
+ ]
+ },
+ "ContractAbi": {
+ "type": "object",
+ "properties": {
+ "abi": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "description": {
+ "type": "string"
+ },
+ "relevance": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "abi",
+ "description",
+ "relevance"
+ ]
+ },
+ "DataDecoder": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "string"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "data"
+ ]
+ },
+ "Delegate": {
+ "type": "object",
+ "description": ".. deprecated:: 4.38.0\n Deprecated in favour of DelegateSerializerV2",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "DelegateSerializerV2": {
+ "type": "object",
+ "description": "Mixin to validate delegate operations data",
+ "properties": {
+ "safe": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "label",
+ "signature"
+ ]
+ },
+ "Erc20Info": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol"
+ ]
+ },
+ "EthereumTxWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "to": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "data": {
+ "type": "string"
+ },
+ "txHash": {
+ "type": "string"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "data",
+ "executionDate",
+ "from",
+ "to",
+ "transfers",
+ "txHash",
+ "txType"
+ ]
+ },
+ "FirebaseDevice": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "safes",
+ "version"
+ ]
+ },
+ "FirebaseDeviceSerializerWithOwnersResponse": {
+ "type": "object",
+ "properties": {
+ "uuid": {
+ "type": "string",
+ "format": "uuid"
+ },
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "cloudMessagingToken": {
+ "type": "string",
+ "maxLength": 200,
+ "minLength": 100
+ },
+ "buildNumber": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "bundle": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "deviceType": {
+ "enum": [
+ "ANDROID",
+ "IOS",
+ "WEB"
+ ],
+ "type": "string",
+ "description": "* `ANDROID` - ANDROID\n* `IOS` - IOS\n* `WEB` - WEB",
+ "x-spec-enum-id": "33c5e401ed5af97a"
+ },
+ "version": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1
+ },
+ "timestamp": {
+ "type": "integer"
+ },
+ "signatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "ownersNotRegistered": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "buildNumber",
+ "bundle",
+ "cloudMessagingToken",
+ "deviceType",
+ "ownersNotRegistered",
+ "ownersRegistered",
+ "safes",
+ "version"
+ ]
+ },
+ "IndexingStatus": {
+ "type": "object",
+ "properties": {
+ "currentBlockNumber": {
+ "type": "integer"
+ },
+ "currentBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20BlockNumber": {
+ "type": "integer"
+ },
+ "erc20BlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "erc20Synced": {
+ "type": "boolean"
+ },
+ "masterCopiesBlockNumber": {
+ "type": "integer"
+ },
+ "masterCopiesBlockTimestamp": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "masterCopiesSynced": {
+ "type": "boolean"
+ },
+ "synced": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "currentBlockNumber",
+ "currentBlockTimestamp",
+ "erc20BlockNumber",
+ "erc20BlockTimestamp",
+ "erc20Synced",
+ "masterCopiesBlockNumber",
+ "masterCopiesBlockTimestamp",
+ "masterCopiesSynced",
+ "synced"
+ ]
+ },
+ "MasterCopyResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "deployer": {
+ "type": "string"
+ },
+ "deployedBlockNumber": {
+ "type": "integer"
+ },
+ "lastIndexedBlockNumber": {
+ "type": "integer"
+ },
+ "l2": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "deployedBlockNumber",
+ "deployer",
+ "l2",
+ "lastIndexedBlockNumber",
+ "version"
+ ]
+ },
+ "ModulesResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "OwnerResponse": {
+ "type": "object",
+ "properties": {
+ "safes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "safes"
+ ]
+ },
+ "PaginatedAllTransactionsSchemaList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AllTransactionsSchema"
+ }
+ }
+ }
+ },
+ "PaginatedContractList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Contract"
+ }
+ }
+ }
+ },
+ "PaginatedSafeCollectibleResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeCollectibleResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeDelegateResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDelegateResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMessageResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMessageResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeModuleTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeModuleTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeMultisigTransactionResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeMultisigTransactionResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationConfirmationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationConfirmationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedSafeOperationWithUserOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeOperationWithUserOperationResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedTokenListList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TokenList"
+ }
+ }
+ }
+ },
+ "PaginatedTransferWithTokenInfoResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ }
+ }
+ },
+ "PaginatedUserOperationWithSafeOperationResponseList": {
+ "type": "object",
+ "required": [
+ "count",
+ "results"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer",
+ "example": 123
+ },
+ "next": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=400&limit=100"
+ },
+ "previous": {
+ "type": "string",
+ "nullable": true,
+ "format": "uri",
+ "example": "http://api.example.org/accounts/?offset=200&limit=100"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ }
+ }
+ }
+ },
+ "SafeBalanceResponse": {
+ "type": "object",
+ "properties": {
+ "tokenAddress": {
+ "type": "string"
+ },
+ "token": {
+ "$ref": "#/components/schemas/Erc20Info"
+ },
+ "balance": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "balance",
+ "token",
+ "tokenAddress"
+ ]
+ },
+ "SafeCollectibleResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "tokenName": {
+ "type": "string"
+ },
+ "tokenSymbol": {
+ "type": "string"
+ },
+ "logoUri": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "uri": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "imageUri": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "additionalProperties": {}
+ }
+ },
+ "required": [
+ "address",
+ "description",
+ "id",
+ "imageUri",
+ "logoUri",
+ "metadata",
+ "name",
+ "tokenName",
+ "tokenSymbol",
+ "uri"
+ ]
+ },
+ "SafeCreationInfoResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "factoryAddress": {
+ "type": "string"
+ },
+ "masterCopy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "saltNonce": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "userOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationWithSafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "created",
+ "creator",
+ "dataDecoded",
+ "factoryAddress",
+ "masterCopy",
+ "saltNonce",
+ "setupData",
+ "transactionHash",
+ "userOperation"
+ ]
+ },
+ "SafeDelegateResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "delegate": {
+ "type": "string"
+ },
+ "delegator": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string",
+ "maxLength": 50
+ },
+ "expiryDate": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "delegate",
+ "delegator",
+ "expiryDate",
+ "label",
+ "safe"
+ ]
+ },
+ "SafeDeployment": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 10
+ },
+ "contracts": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SafeDeploymentContract"
+ }
+ }
+ },
+ "required": [
+ "contracts",
+ "version"
+ ]
+ },
+ "SafeDeploymentContract": {
+ "type": "object",
+ "properties": {
+ "contractName": {
+ "type": "string"
+ },
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "contractName"
+ ]
+ },
+ "SafeInfoResponse": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer"
+ },
+ "threshold": {
+ "type": "integer"
+ },
+ "owners": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "masterCopy": {
+ "type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "fallbackHandler": {
+ "type": "string"
+ },
+ "guard": {
+ "type": "string"
+ },
+ "version": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "fallbackHandler",
+ "guard",
+ "masterCopy",
+ "modules",
+ "nonce",
+ "owners",
+ "threshold",
+ "version"
+ ]
+ },
+ "SafeMessage": {
+ "type": "object",
+ "properties": {
+ "message": {},
+ "safeAppId": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "signature": {
+ "type": "string"
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "message",
+ "signature"
+ ]
+ },
+ "SafeMessageResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "messageHash": {
+ "type": "string"
+ },
+ "message": {},
+ "proposedBy": {
+ "type": "string"
+ },
+ "safeAppId": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Prepared signature sorted\n\n:param obj: SafeMessage instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "message",
+ "messageHash",
+ "modified",
+ "origin",
+ "preparedSignature",
+ "proposedBy",
+ "safe",
+ "safeAppId"
+ ]
+ },
+ "SafeMessageSignature": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeModuleTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "value"
+ ]
+ },
+ "SafeModuleTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "isSuccessful": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safe": {
+ "type": "string"
+ },
+ "module": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "format": "decimal",
+ "pattern": "^-?\\d{0,78}(?:\\.\\d{0,0})?$"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "integer",
+ "description": "* `0` - CALL\n* `1` - DELEGATE_CALL\n* `2` - CREATE",
+ "x-spec-enum-id": "73baf6048b75e41c",
+ "minimum": 0,
+ "maximum": 32767
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "moduleTransactionId": {
+ "type": "string",
+ "description": "Internally calculated parameter to uniquely identify a moduleTransaction \n`ModuleTransactionId = i+tx_hash+trace_address`"
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "blockNumber",
+ "created",
+ "data",
+ "dataDecoded",
+ "executionDate",
+ "isSuccessful",
+ "module",
+ "moduleTransactionId",
+ "operation",
+ "safe",
+ "to",
+ "transactionHash",
+ "transfers",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeMultisigConfirmation": {
+ "type": "object",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeMultisigConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "owner": {
+ "type": "string"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "transactionHash": {
+ "type": "string",
+ "readOnly": true
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "owner",
+ "signature",
+ "signatureType",
+ "submissionDate",
+ "transactionHash"
+ ]
+ },
+ "SafeMultisigTransaction": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contractTransactionHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "signature": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "origin": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "baseGas",
+ "contractTransactionHash",
+ "gasPrice",
+ "nonce",
+ "operation",
+ "safe",
+ "safeTxGas",
+ "sender",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimate": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "operation",
+ "to",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionEstimateResponse": {
+ "type": "object",
+ "properties": {
+ "safeTxGas": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "safeTxGas"
+ ]
+ },
+ "SafeMultisigTransactionResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "trusted",
+ "value"
+ ]
+ },
+ "SafeMultisigTransactionWithTransfersResponse": {
+ "type": "object",
+ "properties": {
+ "safe": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "data": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "operation": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasToken": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeTxGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "baseGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "gasPrice": {
+ "type": "string"
+ },
+ "refundReceiver": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "submissionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "safeTxHash": {
+ "type": "string"
+ },
+ "proposer": {
+ "type": "string"
+ },
+ "proposedByDelegate": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "executor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "isExecuted": {
+ "type": "boolean"
+ },
+ "isSuccessful": {
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "ethGasPrice": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "maxPriorityFeePerGas": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "gasUsed": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "fee": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "readOnly": true
+ },
+ "origin": {
+ "type": "string",
+ "readOnly": true
+ },
+ "dataDecoded": {
+ "type": "object",
+ "additionalProperties": {},
+ "readOnly": true
+ },
+ "confirmationsRequired": {
+ "type": "integer"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n:param obj: MultisigConfirmation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ },
+ "signatures": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transfers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TransferWithTokenInfoResponse"
+ }
+ },
+ "txType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "baseGas",
+ "blockNumber",
+ "confirmations",
+ "confirmationsRequired",
+ "dataDecoded",
+ "ethGasPrice",
+ "executionDate",
+ "executor",
+ "fee",
+ "gasPrice",
+ "gasUsed",
+ "isExecuted",
+ "isSuccessful",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "modified",
+ "nonce",
+ "operation",
+ "origin",
+ "proposedByDelegate",
+ "proposer",
+ "safe",
+ "safeTxGas",
+ "safeTxHash",
+ "submissionDate",
+ "to",
+ "transactionHash",
+ "transfers",
+ "trusted",
+ "txType",
+ "value"
+ ]
+ },
+ "SafeOperation": {
+ "type": "object",
+ "description": "Mixin class to validate SafeOperation signatures. `_get_owners` can be overridden to define\nthe valid owners to sign",
+ "properties": {
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymasterAndData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "moduleAddress",
+ "nonce",
+ "paymasterAndData",
+ "preVerificationGas",
+ "signature",
+ "validAfter",
+ "validUntil",
+ "verificationGasLimit"
+ ]
+ },
+ "SafeOperationConfirmation": {
+ "type": "object",
+ "description": "Validate new confirmations for an existing `SafeOperation`",
+ "properties": {
+ "signature": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "signature"
+ ]
+ },
+ "SafeOperationConfirmationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "signature": {
+ "type": "string"
+ },
+ "signatureType": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "created",
+ "modified",
+ "owner",
+ "signature",
+ "signatureType"
+ ]
+ },
+ "SafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "SafeOperationWithUserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "modified": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "safeOperationHash": {
+ "type": "string"
+ },
+ "validAfter": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "validUntil": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "moduleAddress": {
+ "type": "string"
+ },
+ "confirmations": {
+ "type": "object",
+ "additionalProperties": {},
+ "description": "Filters confirmations queryset\n\n:param obj: SafeOperation instance\n:return: Serialized queryset",
+ "readOnly": true
+ },
+ "preparedSignature": {
+ "type": "string",
+ "readOnly": true
+ },
+ "userOperation": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/UserOperationResponse"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "confirmations",
+ "created",
+ "modified",
+ "moduleAddress",
+ "preparedSignature",
+ "safeOperationHash",
+ "userOperation",
+ "validAfter",
+ "validUntil"
+ ]
+ },
+ "TokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "readOnly": true
+ },
+ "address": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "decimals": {
+ "type": "integer"
+ },
+ "logoUri": {
+ "type": "string",
+ "readOnly": true
+ },
+ "trusted": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "address",
+ "decimals",
+ "logoUri",
+ "name",
+ "symbol",
+ "trusted",
+ "type"
+ ]
+ },
+ "TokenList": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 200
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 200
+ }
+ },
+ "required": [
+ "description",
+ "url"
+ ]
+ },
+ "TransferWithTokenInfoResponse": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Sometimes ERC20/721 `Transfer` events look the same, if token info is available better use that information\nto check\n\n:param obj:\n:return: `TransferType` as a string",
+ "readOnly": true
+ },
+ "executionDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "blockNumber": {
+ "type": "integer"
+ },
+ "transactionHash": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tokenAddress": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transferId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Internally calculated parameter to uniquely identify a transfer \nToken transfers are calculated as `transferId = e+tx_hash+log_index` \nEther transfers are calculated as `transferId = i+tx_hash+trace_address`"
+ },
+ "tokenInfo": {
+ "$ref": "#/components/schemas/TokenInfoResponse"
+ },
+ "from": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "executionDate",
+ "from",
+ "to",
+ "tokenId",
+ "tokenInfo",
+ "transactionHash",
+ "transferId",
+ "type",
+ "value"
+ ]
+ },
+ "UserOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ },
+ "UserOperationWithSafeOperationResponse": {
+ "type": "object",
+ "properties": {
+ "ethereumTxHash": {
+ "type": "string"
+ },
+ "sender": {
+ "type": "string"
+ },
+ "userOperationHash": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "initCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "callGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "verificationGasLimit": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "preVerificationGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "maxPriorityFeePerGas": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "paymaster": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "paymasterData": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signature": {
+ "type": "string"
+ },
+ "entryPoint": {
+ "type": "string"
+ },
+ "safeOperation": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/SafeOperationResponse"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readOnly": true
+ }
+ },
+ "required": [
+ "callData",
+ "callGasLimit",
+ "entryPoint",
+ "ethereumTxHash",
+ "initCode",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "paymaster",
+ "paymasterData",
+ "preVerificationGas",
+ "safeOperation",
+ "sender",
+ "signature",
+ "userOperationHash",
+ "verificationGasLimit"
+ ]
+ }
+ },
+ "securitySchemes": {
+ "cookieAuth": {
+ "type": "apiKey",
+ "in": "cookie",
+ "name": "sessionid"
+ },
+ "tokenAuth": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "Authorization",
+ "description": "Token-based authentication with required prefix \"Token\""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/lib/mdx.tsx b/lib/mdx.tsx
index db9c5cda..e6a0e7a1 100644
--- a/lib/mdx.tsx
+++ b/lib/mdx.tsx
@@ -22,14 +22,17 @@ import {
import MuiLink from '@mui/material/Link'
import { type Heading } from '../components/ApiReference/TOC'
-import swagger from '../components/ApiReference/mainnet-swagger.json'
import pathsMetadata from '../components/ApiReference/paths-metadata.json'
import HashTag from '../assets/svg/hashtag.svg'
+import type Swagger from '../components/ApiReference/mainnet-swagger.json'
export const slugify: (text: string) => string = text =>
text?.replace?.(/ /g, '-').replace(/\//g, '-')
-export const getHeadingChildren: (heading: string) => Heading[] = heading => {
+export const getHeadingChildren = (
+ swagger: typeof Swagger,
+ heading: string
+): Heading[] => {
const allMethods = Object.entries(swagger.paths)
.map(([k, v]) => Object.entries(v))
.flat()
@@ -54,9 +57,10 @@ export const getHeadingChildren: (heading: string) => Heading[] = heading => {
.filter(child => !child.text.includes('Deprecated'))
}
-export const getHeadingsFromHtml: (
+export const getHeadingsFromHtml = (
+ swagger: typeof Swagger,
stringifiedHtml: string
-) => Heading[] = stringifiedHtml => {
+): Heading[] => {
const headings = stringifiedHtml.match(/]*>(.*?)<\/h[2]>/g)
if (headings != null) {
return (
@@ -71,7 +75,7 @@ export const getHeadingsFromHtml: (
return {
text: headingText,
link,
- children: getHeadingChildren(headingText.toLowerCase())
+ children: getHeadingChildren(swagger, headingText.toLowerCase())
}
}) ?? []
)
diff --git a/pages/core-api/transaction-service-reference/arbitrum.mdx b/pages/core-api/transaction-service-reference/arbitrum.mdx
index 8c210ff4..aa50978f 100644
--- a/pages/core-api/transaction-service-reference/arbitrum.mdx
+++ b/pages/core-api/transaction-service-reference/arbitrum.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/arbitrum-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/arbitrum-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/aurora.mdx b/pages/core-api/transaction-service-reference/aurora.mdx
index b587e9e5..490e36ed 100644
--- a/pages/core-api/transaction-service-reference/aurora.mdx
+++ b/pages/core-api/transaction-service-reference/aurora.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/aurora-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/aurora-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/avalanche.mdx b/pages/core-api/transaction-service-reference/avalanche.mdx
index aa801018..a5ccef52 100644
--- a/pages/core-api/transaction-service-reference/avalanche.mdx
+++ b/pages/core-api/transaction-service-reference/avalanche.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/avalanche-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/avalanche-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/base-sepolia.mdx b/pages/core-api/transaction-service-reference/base-sepolia.mdx
index 537d13c5..14fbcf47 100644
--- a/pages/core-api/transaction-service-reference/base-sepolia.mdx
+++ b/pages/core-api/transaction-service-reference/base-sepolia.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/base-sepolia-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/base-sepolia-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/base.mdx b/pages/core-api/transaction-service-reference/base.mdx
index fce04113..8e973bab 100644
--- a/pages/core-api/transaction-service-reference/base.mdx
+++ b/pages/core-api/transaction-service-reference/base.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/base-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/base-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/blast.mdx b/pages/core-api/transaction-service-reference/blast.mdx
index 443a1334..95682852 100644
--- a/pages/core-api/transaction-service-reference/blast.mdx
+++ b/pages/core-api/transaction-service-reference/blast.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/blast-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/blast-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/bsc.mdx b/pages/core-api/transaction-service-reference/bsc.mdx
index 975dc1af..c6aa2137 100644
--- a/pages/core-api/transaction-service-reference/bsc.mdx
+++ b/pages/core-api/transaction-service-reference/bsc.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/bsc-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/bsc-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/celo.mdx b/pages/core-api/transaction-service-reference/celo.mdx
index 2d66a558..f1eea4e1 100644
--- a/pages/core-api/transaction-service-reference/celo.mdx
+++ b/pages/core-api/transaction-service-reference/celo.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/celo-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/celo-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/chiado.mdx b/pages/core-api/transaction-service-reference/chiado.mdx
index b765d1f6..edba673a 100644
--- a/pages/core-api/transaction-service-reference/chiado.mdx
+++ b/pages/core-api/transaction-service-reference/chiado.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/chiado-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/chiado-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/gnosis-chain.mdx b/pages/core-api/transaction-service-reference/gnosis-chain.mdx
index 2b151aad..0c1d746e 100644
--- a/pages/core-api/transaction-service-reference/gnosis-chain.mdx
+++ b/pages/core-api/transaction-service-reference/gnosis-chain.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/gnosis-chain-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/gnosis-chain-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/gnosis.mdx b/pages/core-api/transaction-service-reference/gnosis.mdx
deleted file mode 100644
index e7734bfb..00000000
--- a/pages/core-api/transaction-service-reference/gnosis.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-
-{/* */}
-import ApiReference from '../../../components/ApiReference'
-import { renderToString } from 'react-dom/server'
-import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
-
-export const getStaticProps = async () => {
- const renderedMdx =
- const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
-
- return {
- props: {
- ssg: { headings }
- }
- }
-}
-
-
-{/* */}
diff --git a/pages/core-api/transaction-service-reference/linea.mdx b/pages/core-api/transaction-service-reference/linea.mdx
index c05b2ff8..22153d51 100644
--- a/pages/core-api/transaction-service-reference/linea.mdx
+++ b/pages/core-api/transaction-service-reference/linea.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/linea-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/linea-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/mainnet.mdx b/pages/core-api/transaction-service-reference/mainnet.mdx
index ae29bfd9..bd92563e 100644
--- a/pages/core-api/transaction-service-reference/mainnet.mdx
+++ b/pages/core-api/transaction-service-reference/mainnet.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/mainnet-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/mainnet-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/mantle.mdx b/pages/core-api/transaction-service-reference/mantle.mdx
index 0fdc6c09..d6fd6e53 100644
--- a/pages/core-api/transaction-service-reference/mantle.mdx
+++ b/pages/core-api/transaction-service-reference/mantle.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/mantle-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/mantle-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/optimism.mdx b/pages/core-api/transaction-service-reference/optimism.mdx
index 61d43105..7d2e23d7 100644
--- a/pages/core-api/transaction-service-reference/optimism.mdx
+++ b/pages/core-api/transaction-service-reference/optimism.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/optimism-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/optimism-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/polygon.mdx b/pages/core-api/transaction-service-reference/polygon.mdx
index 01faaa97..f5b2c7d4 100644
--- a/pages/core-api/transaction-service-reference/polygon.mdx
+++ b/pages/core-api/transaction-service-reference/polygon.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/polygon-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/polygon-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/scroll.mdx b/pages/core-api/transaction-service-reference/scroll.mdx
index 58d7d051..c82a01fa 100644
--- a/pages/core-api/transaction-service-reference/scroll.mdx
+++ b/pages/core-api/transaction-service-reference/scroll.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/scroll-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/scroll-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/sepolia.mdx b/pages/core-api/transaction-service-reference/sepolia.mdx
index b159013d..7d1fa016 100644
--- a/pages/core-api/transaction-service-reference/sepolia.mdx
+++ b/pages/core-api/transaction-service-reference/sepolia.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/sepolia-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/sepolia-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/worldchain.mdx b/pages/core-api/transaction-service-reference/worldchain.mdx
index 70c307d4..0c294a6e 100644
--- a/pages/core-api/transaction-service-reference/worldchain.mdx
+++ b/pages/core-api/transaction-service-reference/worldchain.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/worldchain-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/worldchain-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/xlayer.mdx b/pages/core-api/transaction-service-reference/xlayer.mdx
index 2c938774..5831022c 100644
--- a/pages/core-api/transaction-service-reference/xlayer.mdx
+++ b/pages/core-api/transaction-service-reference/xlayer.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/xlayer-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/xlayer-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/zkevm.mdx b/pages/core-api/transaction-service-reference/zkevm.mdx
index 2b8bcef7..497175b3 100644
--- a/pages/core-api/transaction-service-reference/zkevm.mdx
+++ b/pages/core-api/transaction-service-reference/zkevm.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/zkevm-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/zkevm-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {
diff --git a/pages/core-api/transaction-service-reference/zksync.mdx b/pages/core-api/transaction-service-reference/zksync.mdx
index 09b117c9..00df1460 100644
--- a/pages/core-api/transaction-service-reference/zksync.mdx
+++ b/pages/core-api/transaction-service-reference/zksync.mdx
@@ -3,12 +3,13 @@
import ApiReference from '../../../components/ApiReference'
import { renderToString } from 'react-dom/server'
import { MDXComponents, getHeadingsFromHtml } from '../../../lib/mdx'
-import Mdx from '../../../components/ApiReference/generated-reference.mdx'
+import Mdx from '../../../components/ApiReference/generated/zksync-reference.mdx'
+import swagger from '../../../components/ApiReference/schemas/zksync-swagger.json'
export const getStaticProps = async () => {
const renderedMdx =
const contentString = renderToString(renderedMdx)
- const headings = getHeadingsFromHtml(contentString)
+ const headings = getHeadingsFromHtml(swagger, contentString)
return {
props: {