The withdrawal feature allows partners to withdraw tokens from Gnosis Pay Safe accounts to any external address on the Gnosis Chain. All transactions are gasless, enabling users to perform these operations completely free of charge. The withdrawal process involves the following steps:Documentation Index
Fetch the complete documentation index at: https://docs.gnosispay.com/llms.txt
Use this file to discover all available pages before exploring further.
- Fetch Transaction Data - Get the EIP-712 typed data for signing
- Sign and Submit - Sign the transaction and submit the withdrawal
- Monitor Execution - Wait for the delay relay to process the withdrawal
Withdrawal Process
Fetch Transaction Data for Signing
Get the EIP-712 typed data that needs to be signed by the user’s wallet (spec):The response contains EIP-712 typed data that needs to be signed by the user’s wallet.
cURL
Sign the EIP-712 Typed Data
The EIP-712 typed data from Step 1 must be signed by the user’s wallet using the EIP-712 signature standard.
Wallet Requirements:
- The wallet must be a signer of the Gnosis Pay Safe account
- For EOA wallets: Standard EIP-712 signature is used
- For smart contract wallets: ERC-1271 signature verification is used, and you must include the
smartWalletAddressfield in the request body
Submit Transaction
Once signed, submit the transaction to execute the withdrawal:
cURL
Monitor the Execution
The withdrawal is processed through a delay relay mechanism that executes after 3 minutes.You can monitor the transaction status using the delay-relay monitoring endpoints or by checking your Safe’s transaction history.
Complete Implementation Example
The following example demonstrates the complete flow:Security Considerations
- Make sure the user is aware this transfer is on the Gnosis Chain
- Remember that transactions cannot be reversed once executed
- Cards are temporarily frozen during the withdrawal process as a security measure
Token Support
This feature supports withdrawing any ERC-20 token that exists in the Safe account. Make sure to:- Use the correct token contract address
- Specify the amount in the token’s base units (considering decimals)
- Ensure sufficient token balance in the Safe account