Skip to main content
POST
/
safe
/
withdraw
Relay a Safe withdrawal via shared Nexus relayer
curl --request POST \
  --url https://v1.orchestrator.rhinestone.dev/deposit-processor/safe/withdraw \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '
{
  "chainId": "eip155:8453",
  "safeAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
  "safeTransaction": {
    "to": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
    "value": "1000000000000000000",
    "data": "0x1234abcd",
    "operation": 0,
    "safeTxGas": "1000000000000000000",
    "baseGas": "1000000000000000000",
    "gasPrice": "1000000000000000000",
    "gasToken": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
    "refundReceiver": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
    "nonce": "1000000000000000000"
  },
  "signature": "0x1234abcd"
}
'
{
  "message": "<string>",
  "txHash": "0x1234abcd"
}

Headers

x-api-key
string
required

API key for authentication

Example:

"your-api-key"

x-api-version
string

API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.

Pattern: ^\d{4}-\d{2}\.[a-z0-9]+$
Example:

"2026-04.amazon"

Body

application/json
chainId
required

Chain identifier as a positive integer or CAIP-2 string (e.g. "eip155:8453")

Required range: x > 0
Example:

"eip155:8453"

safeAddress
string
required

Ethereum address (0x followed by 40 hex characters)

Pattern: ^0x[a-fA-F0-9]{40}$
Example:

"0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91"

safeTransaction
object
required
signature
string
required

Hex-encoded string (0x followed by hex characters)

Pattern: ^0x[a-fA-F0-9]+$
Example:

"0x1234abcd"

Response

Withdrawal relayed successfully

message
string
required
txHash
string

Hex-encoded string (0x followed by hex characters)

Pattern: ^0x[a-fA-F0-9]+$
Example:

"0x1234abcd"