My goal is to run the safe-infrastructure service for a sample test by following the Guide to run our services locally.

I believe I followed the instructions correctly on the main branch (or commit 476c42d) with the Georli chain, which is officially supported and should not have any compatibility or support issues.

However, the service isn’t working.


Chrome DevTools Console
GET http://localhost:8000/cgw/v1/chains/5/safes/0x38b3aE5977220a8081De42a9045d8D2537e73871 404 (Not Found)
Chrome DevTools Headers
Request URL: http://localhost:8000/cgw/v1/chains/5/safes/0x38b3aE5977220a8081De42a9045d8D2537e73871
Request Method: GET
Status Code: 404 Not Found (from service worker)
Referrer Policy: strict-origin-when-cross-origin

[Response Headers]
access-control-allow-credentials: true
access-control-allow-headers: X-Requested-With, Content-Type, Authorization
access-control-allow-methods: POST, GET, OPTIONS
access-control-allow-origin: *
Connection: keep-alive
Content-Length: 26
Content-Type: application/json
Date: Wed, 22 Mar 2023 15:11:21 GMT
permissions-policy: interest-cohort=()
Server: nginx/1.23.3
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN

[Request Headers]
Provisional headers are shown
Learn more
Referer: http://localhost:8080/
sec-ch-ua: "Brave";v="111", "Not(A:Brand";v="8", "Chromium";v="111"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36
Chrome DevTools Response




Step 1: setup your .env




Step 2: Setup Django superusers

# Option #1 - Automated way
cd scripts
sh run_locally.sh

Step 3: Add your ChainInfo

Referred to the ChainInfo available in the official production information at https://safe-config.gnosis.io/api/v1/chains/

safe-infrastructure on  main
❯ curl -s http://localhost:8000/cfg/api/v1/chains/ | jq
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
      "chainId": "5",
      "chainName": "Goerli",
      "shortName": "gor",
      "description": "Ethereum Testnet Görli",
      "l2": true,
      "rpcUri": {
        "authentication": "NO_AUTHENTICATION",
        "value": "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"
      "safeAppsRpcUri": {
        "authentication": "NO_AUTHENTICATION",
        "value": "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"
      "publicRpcUri": {
        "authentication": "NO_AUTHENTICATION",
        "value": "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"
      "blockExplorerUriTemplate": {
        "address": "https://goerli.etherscan.io/address/{{address}}",
        "txHash": "https://goerli.etherscan.io/tx/{{txHash}}",
        "api": "https://api-goerli.etherscan.io/api?module={{module}}&action={{action}}&address={{address}}&apiKey={{apiKey}}"
      "nativeCurrency": {
        "name": "Goerli Ether",
        "symbol": "GOR",
        "decimals": 18,
        "logoUri": "/media/chains/5/currency_logo.png"
      "transactionService": "http://nginx:8000/txs",
      "vpcTransactionService": "http://nginx:8000/txs",
      "theme": {
        "textColor": "#ffffff",
        "backgroundColor": "#000000"
      "gasPrice": [
          "type": "fixed",
          "weiValue": "100000000000"
      "ensRegistryAddress": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
      "recommendedMasterCopyVersion": "1.3.0",
      "disabledWallets": [],
      "features": [

Step 4: Add your webhooks

  • Url: http://nginx:8000/cgw/v1/chains/5/hooks/events
  • Authorization: Basic some_random_token

Safe Web App

1. Connect to http://localhost:8080/welcome using a browser

2. Select the Goerli chain from the dropdown menu in the top right corner

3. Connect MetaMask wallet

4.1. Click the + Create New Safe button

4.2. Select network and name your Safe -> Click the Next button


4.3 Owners and confirmations -> Click the Next button image

4.4.1. Create new Safe -> Click the Next button: the Est. network fee is not being updated and is still showing the initial value of 0.001 GOR image

4.4.2. Transaction image

4.4.3. Error image


1 Answer 1


Service will take a lot of time to index the chain, you can check the status on the indexer worker. If you are only interested in new Safes and you don't care about previous created Safes you can go to the admin panel of the Safe Transaction Service and increase the tx block number (which is the last indexed block number) for every master copy:

tx service admin panel


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.