Skip to content

Raneet10/golver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golver

Golver is a cross-chain bridge relayer built on ERC-7683. When a user opens an intent to move assets across chains, Golver detects it, auctions it to competing solvers, confirms the fill on the destination chain, and verifies the solver's reimbursement on the source chain.

To prevent solver centralization — where only a few well-capitalised solvers can realistically compete — Golver runs a short open auction before each fill, letting any solver bid for the right to serve the user.

How it works

     Source Chain
          │  user opens order, locking funds in escrow
          ▼
┌──────────────────────────────────────────────┐
│               Chain Listener                 │
│  Watches the source chain for new            │
│  cross-chain intents; deduplicates events    │
│  so each order enters the pipeline once      │
└─────────────────────┬────────────────────────┘
                      │  raw intent event
                      ▼
┌──────────────────────────────────────────────┐
│               Order Decoder                  │
│  Parses each intent: which assets the user   │
│  wants to move, to which destination, by     │
│  what deadline, and at what minimum amount   │
└─────────────────────┬────────────────────────┘
                      │  decoded order (assets, deadline, fill instructions)
                      ▼
┌──────────────────────────────────────────────┐◄── solvers connect here to bid
│             Auction Service                  │
│  Broadcasts the order to all competing       │
│  solvers and elects the lowest-fee winner    │
│  before the fill deadline expires            │
└─────────────────────┬────────────────────────┘
                      │  winning solver + agreed fee
                      ▼
┌──────────────────────────────────────────────┐◄── Destination Chain
│              Fill Executor                   │    solver pays user here
│  Waits for the winning solver to pay the     │
│  user on the destination chain; declares a   │
│  fill failure if the deadline passes first   │
└─────────────────────┬────────────────────────┘
                      │  fill confirmed (destination tx)
                      ▼
┌──────────────────────────────────────────────┐◄── Source Chain
│            Settlement Monitor                │    escrowed funds released to solver
│  Watches the source chain for the locked     │
│  funds to be released to the solver,         │
│  confirming the full bridge cycle is done    │
└─────────────────────┬────────────────────────┘
                      │  order fully settled
                      ▼
                  downstream

Configuration

Each binary takes a --config flag pointing to a TOML file. Copy an example from configs/ and fill in the required fields:

./chain-listener       --config configs/chain-listener.toml
./order-decoder        --config configs/order-decoder.toml
./auction-service      --config configs/auction-service.toml
./fill-executor        --config configs/fill-executor.toml
./settlement-monitor   --config configs/settlement-monitor.toml

Required fields per service: RPC WebSocket URL, chain ID, settler contract addresses, Kafka brokers, and PostgreSQL connection string. Topic names, consumer groups, and timeouts default to sensible values if omitted.

About

Protocol-agnostic cross-chain bridge relayer built on the ERC-7683 cross-chain intents standard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors