MCPcopy Index your code
hub / github.com/blast-io/blast

github.com/blast-io/blast @v1.8.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.8.0 ↗ · + Follow
33,736 symbols 149,461 edges 2,864 files 16,364 documented · 49%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Blast

This repo contains Blast's fork of optimism and op-geth. If you're interested in self hosting a Blast node for either mainnet or testnet, check out the docs here.

Running Blast locally (against a local L1)

Prereqs

docker, git, go1.20, node, pnpm, foundry, make, yarn, direnv, jq

Steps

  1. Build the blast-geth docker image
docker build blast-geth -f blast-geth/Dockerfile -t blast-geth
  1. Compile the smart contracts & start the devnet
export BLAST_ROOT=$(realpath blast-optimism)

# Compile the smart contracts & deploy them to the L1
cd blast-optimism/packages/contracts-bedrock
pnpm clean  
pnpm install
pnpm build

# If you're on a mac, you might need rosetta instructions, ONLY IF NEEDED FOR M1/M2:
# /usr/sbin/softwareupdate --install-rosetta --agree-to-license`

cd $BLAST_ROOT

# Install geth
make install-geth

# Make sure geth is in your PATH, if it's not, you can set it using
# export PATH="${PATH}:${GOPATH}/bin:${HOME}/go/bin"

make cannon-prestate

# Run the devnet in docker
# L1 RPC: http://localhost:8545
# L2 RPC: http://localhost:9545
make devnet-up

# To stop devnet run command
make devnet-down

L1 faucet address

This is the private key for the devnet L1 faucet: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

This is the corresponding address: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266

Using the L2

  1. Send some ETH from the L1 faucet to your wallet on the L1
  2. Find the Blast bridge address using the command below:
cd $BLAST_ROOT
cat ./packages/contracts-bedrock/deployments/devnetL1/L1BlastBridgeProxy.json | grep -m 1 '"address": '
  1. Send L1 ETH from your wallet to bridge address above
  2. Wait for the tx to get confirmed
  3. Your wallet should now have ETH on the L2

Extension points exported contracts — how you extend this code

NodeAdminProxyAPI (Interface)
NodeProxyAPI defines the methods proxied to the node rpc backend This should include all methods that are called by op-b [10 …
blast-optimism/op-conductor/rpc/api.go
RPC (Interface)
Modeled off op-service/client.go. We can refactor this once the client/metrics portion of op-service/client has been gen [10 …
blast-optimism/indexer/node/client.go
Scores (Interface)
go:generate mockery --name Scores --output mocks/ --with-expecter=true [6 implementers]
blast-optimism/op-node/p2p/gating/scoring.go
L2EndpointProvider (Interface)
L2EndpointProvider is an interface for providing a RollupClient and l2 eth client It manages the lifecycle of the Rollup [6 …
blast-optimism/op-service/dial/static_l2_provider.go
StateOracle (Interface)
StateOracle defines the high-level API used to retrieve L2 state data pre-images The returned data is always the preimag [8 …
blast-optimism/op-program/client/l2/oracle.go
Subscription (Interface)
TODO: move subscription to package event Subscription represents an event subscription where events are delivered on a d [6 …
blast-geth/interfaces.go
KeccakState (Interface)
KeccakState wraps sha3.state. In addition to the usual hash methods, it also supports Read to get a variable amount of d [19 …
blast-geth/crypto/crypto.go
Service (Interface)
Service is a service registered at the Server and identified by a string id [6 implementers]
blast-geth/les/vflux/server/service.go

Core symbols most depended-on inside this repo

Errorf
called by 5119
blast-optimism/op-e2e/e2eutils/testing.go
equal
called by 3405
blast-geth/crypto/bls12381/field_element.go
Equal
called by 2907
blast-geth/core/types/transaction_signing.go
Fatalf
called by 2802
blast-optimism/op-e2e/e2eutils/testing.go
New
called by 2699
blast-geth/log/logger.go
Uint64
called by 1571
blast-optimism/op-service/cliiface/context.go
Fatal
called by 1555
blast-optimism/op-e2e/e2eutils/testing.go
Hash
called by 1325
blast-geth/core/state/database.go

Shape

Method 16,910
Function 12,011
Struct 3,631
Interface 523
TypeAlias 361
FuncType 154
Class 140
Enum 6

Languages

Go90%
TypeScript8%
C++1%
C1%
Python1%
Java1%

Modules by API surface

blast-geth/graphql/internal/graphiql/graphiql.min.js1,151 symbols
blast-geth/graphql/internal/graphiql/react-dom.production.min.js332 symbols
blast-geth/accounts/usbwallet/trezor/messages-management.pb.go300 symbols
blast-optimism/op-bindings/bindings/safe.go238 symbols
blast-optimism/op-bindings/bindings/wethrebasing.go178 symbols
blast-optimism/op-bindings/bindings/usdb.go174 symbols
blast-geth/internal/jsre/deps/web3.js162 symbols
blast-optimism/op-bindings/bindings/l1standardbridge.go157 symbols
blast-optimism/op-bindings/bindings/systemconfig.go150 symbols
blast-geth/eth/downloader/downloader_test.go148 symbols
blast-optimism/op-bindings/bindings/governancetoken.go147 symbols
blast-optimism/op-bindings/bindings/eas.go146 symbols

Datastores touched

db_nameDatabase · 1 repos

For agents

$ claude mcp add blast \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact