All Projects → gnosis → safe-relay-service

gnosis / safe-relay-service

Licence: MIT license
Relay Tx Service for Gnosis Safe

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to safe-relay-service

safe-transaction-service
Keeps track of transactions sent via Gnosis Safe contacts and confirmed transactions. It also keeps track of Ether and ERC20 token transfers to Safe contracts.
Stars: ✭ 72 (+50%)
Mutual labels:  gnosis, gnosis-safe
gnosis-py
Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects
Stars: ✭ 68 (+41.67%)
Mutual labels:  gnosis, gnosis-safe
graphql-ts-client
Typescript DSL for GraphQL.
Stars: ✭ 124 (+158.33%)
Mutual labels:  relay
social-relay
Public post relay for the Diaspora federated social network protocol
Stars: ✭ 27 (-43.75%)
Mutual labels:  relay
relay-store-types-generator
Generate types for the Relay store from your GraphQL schema.
Stars: ✭ 17 (-64.58%)
Mutual labels:  relay
theonionbox
Dashboard to monitor Tor node operations
Stars: ✭ 116 (+141.67%)
Mutual labels:  relay
graphql-hackathon
Repo for starter kits and samples for the GraphQL Community Hackathon
Stars: ✭ 25 (-47.92%)
Mutual labels:  relay
qweechat
Qt remote GUI for WeeChat.
Stars: ✭ 56 (+16.67%)
Mutual labels:  relay
itdagene-webapp
Next-gen itdagene webapp
Stars: ✭ 15 (-68.75%)
Mutual labels:  relay
chpc
CHPC: Cheap Heat Pump Controller
Stars: ✭ 27 (-43.75%)
Mutual labels:  relay
ape-safe
gnosis safe tx builder
Stars: ✭ 211 (+339.58%)
Mutual labels:  gnosis-safe
conduit
Conduit - Open Source 0x Relayer API implemented in NodeJS
Stars: ✭ 18 (-62.5%)
Mutual labels:  relay
zola-api
Zola’s API.
Stars: ✭ 23 (-52.08%)
Mutual labels:  relay
opcua-esp32
Embedded OPC UA Server on ESP32 based on open62541 stack
Stars: ✭ 82 (+70.83%)
Mutual labels:  relay
ReSift
A state management library for data fetches in React
Stars: ✭ 39 (-18.75%)
Mutual labels:  relay
django-eth-events
No description or website provided.
Stars: ✭ 43 (-10.42%)
Mutual labels:  gnosis
graphql-client-example-server
A simple GraphQL server for powering examples of various GraphQL clients in various languages.
Stars: ✭ 34 (-29.17%)
Mutual labels:  relay
server
Serve one or more react apps! - Custom routes, HotReloading, Authenticated Apps/routes, Relay, Webpack..
Stars: ✭ 20 (-58.33%)
Mutual labels:  relay
heltin
Robust client registry for individuals receiving mental healthcare services.
Stars: ✭ 18 (-62.5%)
Mutual labels:  relay
react-native-relay
🚀 demo React Native app using React Navigation and Relay with mutations and subscriptions
Stars: ✭ 20 (-58.33%)
Mutual labels:  relay

Build Status Coverage Status Python 3.9 Django 3

Gnosis Safe Relay Service

This service allows us to have owners of the Safe contract that don’t need to hold any ETH on those owner addresses. How is this possible? The Transaction Relay Service acts as a proxy, paying for the transaction fees and getting it back due to the transaction architecture we use. It also enables the user to pay for ethereum transactions using ERC20 tokens.

Docs

Docs are available on Gnosis Docs You can open the diagrams explaining Pre CREATE2 deployment under docs/ with Staruml

Setup for development (using ganache)

This is the recommended configuration for developing and testing the Relay service. docker-compose is required for running the project.

Configure the parameters needed on .env_ganache. By default the private keys of the accounts are the ones from Ganache, and the contract addresses are calculated to be the ones deployed by the Relay when the application starts, so there's no need to configure anything.

More parameters can be added to that file like:

  • SAFE_FIXED_CREATION_COST: For fixed price in wei for deploying a Safe. If you set 0 you allow Safes to be deployed for free.
  • SAFE_CONTRACT_ADDRESS to change the Safe's master copy address.
  • For more parameters check base.py file.

Then:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml build --force-rm
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

The service should be running in localhost:8000

Setup for production

This is the recommended configuration for running a production Relay. docker-compose is required for running the project.

Configure the parameters needed on .env. These parameters need to be changed:

  • ETHEREUM_NODE_URL: Http/s address of a ethereum node.
  • SAFE_FUNDER_PRIVATE_KEY: Use a private key for an account with ether on that network. It's used to deploy new Safes.
  • SAFE_TX_SENDER_PRIVATE_KEY: Same as the SAFE_FUNDER_PRIVATE_KEY, but it's used to relay all transactions.

Another parameters can be configured like:

  • SAFE_CONTRACT_ADDRESS: If you are not using default Gnosis Safe Master Copy.
  • SAFE_FIXED_CREATION_COST: For fixed price in wei for deploying a Safe. If you set 0 you allow Safes to be deployed for free.
  • For more parameters check base.py file.

Then:

docker-compose build --force-rm
docker-compose up

The service should be running in localhost:8000

For example, to set up a Göerli node:

  • Set ETHEREUM_NODE_URL to https://goerli.infura.io/v3/YOUR-PROJECT-ID (if using INFURA)
  • Set SAFE_FUNDER_PRIVATE_KEY and SAFE_TX_SENDER_PRIVATE_KEY to accounts that have Göerli ether. Don't use the same account for both

Run:

docker-compose build --force-rm
docker-compose up

You can test everything is set up:

curl 'http://localhost:8000/api/v1/about/'

Use admin interface

Services come with a basic administration web ui (provided by Django). A user must be created first to get access:

docker exec -it safe-relay-service_worker_1 bash
python manage.py createsuperuser

Then go to the web browser and navigate to http://localhost:8000/admin/

Add your custom gas token

Custom tokens can be added as a payment option for the Relay Service from the admin interface:

  • Navigate to Tokens and click Add.
  • Configure your token and set Fixed eth conversion if your token has a fixed price (related to ETH price). For example, WETH token has a fixed eth conversion equal to 1. If not, leave it blank.
  • If you want to set up a dynamic oracle after adding your Token you need to add a Price Oracle Ticker. You can choose multiple oracle sources. Go back to your Token and check if Eth value is correct.
  • Price is always shown as a reference to Ethereum, so for example WETH will have a eth value of 1

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].