diff --git a/src/layouts/navigation.ts b/src/layouts/navigation.ts
index 076da9358..191f299da 100644
--- a/src/layouts/navigation.ts
+++ b/src/layouts/navigation.ts
@@ -270,6 +270,7 @@ export const getNavigation = (section) => {
},
{ title: "Base", href: "/validator/external-chains/base" },
{ title: "Binance", href: "/validator/external-chains/binance" },
+ { title: "Blast", href: "/validator/external-chains/blast" },
{ title: "Celo", href: "/validator/external-chains/celo" },
{
title: "Centrifuge",
diff --git a/src/pages/validator/external-chains/blast.mdx b/src/pages/validator/external-chains/blast.mdx
new file mode 100644
index 000000000..67fd3c632
--- /dev/null
+++ b/src/pages/validator/external-chains/blast.mdx
@@ -0,0 +1,204 @@
+# Blast
+
+Instructions to set up your blast node.
+
+## Requirements
+
+- [Setup your Axelar validator](/validator/setup)
+- Minimum hardware requirements: 8 AWS vCPU+, 8GB RAM, 512GB of SSD free storage space.
+- MacOS or Ubuntu 22.04 (tested on 22.04)
+- [Official Github Documentation](https://github.com/blast-io/deployment)
+- [Official Documentation for Node Providers](https://docs.blast.io/tools/node-providers)
+
+## Prerequisites
+
+- [Common Docker Compose Commands](./optimism#common-node-operations)
+```bash
+sudo apt-get install jq -y
+snap install docker
+```
+
+## Clone Repo
+
+```bash
+git clone https://github.com/blast-io/deployment.git blast-node
+cd blast-node
+```
+
+## Set Node Config Environment Variables
+```bash
+cp .env.example .env
+```
+
+Set the following config options in `blast-node/.env`:
+
+
+
+ ```bash
+ # NETWORK should be mainnet or sepolia
+ NETWORK=mainnet
+ # Relative path to the directory that will store chain data
+ GETH_DATA_DIR=blast-geth-data
+ # Your Ethereum L1 RPC endpoint
+ L1_RPC_URL="your_l1_rpc_url"
+ # The type of RPC provider, valid options are alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any
+ # Axelar Team recommends you to run your own
+ L1_RPC_KIND="any"
+ ```
+
+
+ ```bash
+ # NETWORK should be mainnet or sepolia
+ NETWORK=sepolia
+ # Relative path to the directory that will store chain data
+ GETH_DATA_DIR=blast-geth-data
+ # Your Sepolia L1 RPC endpoint
+ L1_RPC_URL="your_l1_rpc_url"
+ # The type of RPC provider, valid options are alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any
+ # Axelar Team recommends you to run your own
+ L1_RPC_KIND="any"
+ ```
+
+
+
+
+## Start the node
+```bash
+docker compose up -d
+```
+
+This should show an output like this:
+```bash
+[+] Running 6/6
+ ✔ Network blast-node_blast-net Created 0.1s
+ ✔ Network blast-node_default Created 0.1s
+ ✔ Container blast-node-generate-jwt-1 Exited 1.0s
+ ✔ Container blast-node-geth-init-1 Exited 1.8s
+ ✔ Container blast-node-blast-geth-1 Started 2.0s
+ ✔ Container blast-node-op-node-1 Started 2.3s 11.2s
+```
+
+After it is done, verify by listing the services and their status
+ ```bash
+docker compose ps
+```
+
+You should see these 2 services running
+```bash
+NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
+blast-node-blast-geth-1 blastio/blast-geth:sepolia "geth --datadir=/bla…" blast-geth 4 hours ago Up 4 hours 8545-8546/tcp, 30303/tcp, 0.0.0.0:9545-9546->9545-9546/tcp, :::9545-9546->9545-9546/tcp, 30303/udp
+blast-node-op-node-1 blastio/blast-optimism:sepolia "op-node --l1=https:…" op-node 4 hours ago Up 4 hours 0.0.0.0:9003->9003/tcp, :::9003->9003/tcp
+```
+
+## Check logs
+
+#### Verify blast geth logs
+
+```bash
+docker compose logs blast-geth --since 2m -f
+```
+
+```bash
+blast-node-blast-geth-1 | INFO [02-27|07:43:45.734] Started P2P networking self="enode://54139a54494808b5f9703b3858fc8fe0aaffa5902d41b1fc61f6c92bc003743d87c81e115120a2d5061bb1852fd04fb2851bb235e660462d0c107b7bed640302@127.0.0.1:30303?discport=0"
+blast-node-blast-geth-1 | INFO [02-27|07:43:45.735] HTTP server started endpoint=[::]:9545 auth=false prefix= cors=* vhosts=*
+blast-node-blast-geth-1 | INFO [02-27|07:43:45.735] WebSocket enabled url=ws://[::]:9546
+blast-node-blast-geth-1 | INFO [02-27|07:43:45.735] WebSocket enabled url=ws://[::]:8551
+blast-node-blast-geth-1 | INFO [02-27|07:43:45.735] HTTP server started endpoint=[::]:8551 auth=true prefix= cors=localhost vhosts=*
+blast-node-blast-geth-1 | INFO [02-04|07:42:29.722] Chain head was updated number=39537 hash=26c5c6..e67efa root=14a631..1e99bf elapsed=5.40331ms age=2mo2w6d
+blast-node-blast-geth-1 | INFO [02-04|07:42:29.734] Starting work on payload id=0x95a98a726f1398ee
+blast-node-blast-geth-1 | INFO [02-04|07:42:29.751] Imported new potential chain segment number=39538 hash=219454..97cd30 blocks=1 txs=1 mgas=0.051 elapsed=16.713ms mgasps=3.022 age=2mo2w6d triedirty=0.00B
+```
+It will not import new headers until your op-node is synced, once your op-node is synced, your blast-geth logs should look like this
+
+```bash
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.219] Starting work on payload id=0x48323feb74b0d35a
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.237] Imported new potential chain segment number=3083 hash=96c535..584bd5 blocks=1 txs=1 mgas=0.047 elapsed=16.962ms mgasps=2.768 age=1mo3w1d snapdiffs=606.60KiB triedirty=0.00B
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.243] Chain head was updated number=3083 hash=96c535..584bd5 root=52730a..6a9c02 elapsed=5.42431ms age=1mo3w1d
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.256] Starting work on payload id=0x180234ae531457a1
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.274] Imported new potential chain segment number=3084 hash=9687bc..de7e94 blocks=1 txs=1 mgas=0.047 elapsed=16.911ms mgasps=2.776 age=1mo3w1d snapdiffs=606.78KiB triedirty=0.00B
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.285] Chain head was updated number=3084 hash=9687bc..de7e94 root=8081fb..43e327 elapsed=10.075637ms age=1mo3w1d
+blast-node-blast-geth-1 | INFO [02-29|08:08:15.307] Starting work on payload id=0x44c95802c3652dbd
+```
+
+
+#### Verify OP node logs
+
+```bash
+docker compose logs op-node --since 2m -f
+```
+You should see logs like
+
+```bash
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting JSON-RPC server"
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="metrics disabled"
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting execution engine driver"
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Starting driver" sequencerEnabled=false sequencerStopped=false
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Rollup node started"
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="State loop started"
+blast-node-op-node-1 | t=2024-02-27T07:43:46+0000 lvl=info msg="Loaded current L2 heads" unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 unsafe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 safe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255
+blast-node-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Walking back L1Block by number" curr=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 next=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 l2block=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0
+blast-node-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Hit finalized L2 head, returning immediately" unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 unsafe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255 safe_origin=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255
+blast-node-op-node-1 | t=2024-02-27T07:43:47+0000 lvl=info msg="Sync progress" reason="reset derivation work" l2_finalized=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_safe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_unsafe=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_engineSyncTarget=0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906:0 l2_time=1,704,686,688 l1_derived=0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437:5044255
+```
+
+## Verify node sync status
+
+### RPC Endpoint
+
+```bash
+echo "$(curl -4 ifconfig.co):9545"
+```
+
+#### Method:
+```bash
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' [rpc] | jq
+```
+
+If you get something like this in response to the above rpc call, your node is setup correctly
+
+```bash
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0x09A"
+}
+```
+
+#### Sync Status of Blast optimism Execution Node
+
+You can check your status by connecting to geth console
+
+```bash
+docker exec -it blast-node-blast-geth-1 geth attach http://localhost:9545
+> eth.blockNumber
+94078 # it will show you the latest block - number here is just an example
+
+> eth.syncing
+false
+```
+You can compare the block height on your node with explorer ([mainnet](https://blastscan.io/) or [testnet](https://testnet.blastscan.io)),
+use your RPC node only when it has caught up with the latest block height.
+
+## Configure vald
+
+In order for `vald` to connect to your Blast node, your `rpc_addr` should be exposed in
+vald's `config.toml`
+
+
+
+ ```bash
+ [[axelar_bridge_evm]]
+ name = "blast"
+ rpc_addr = "http://IP:PORT"
+ start-with-bridge = true
+ ```
+
+
+ ```bash
+ [[axelar_bridge_evm]]
+ name = "blast"
+ rpc_addr = "http://IP:PORT"
+ start-with-bridge = true
+ ```
+
+
diff --git a/src/pages/validator/external-chains/fraxtal.mdx b/src/pages/validator/external-chains/fraxtal.mdx
index 7379c3c10..7bfc2f043 100644
--- a/src/pages/validator/external-chains/fraxtal.mdx
+++ b/src/pages/validator/external-chains/fraxtal.mdx
@@ -138,10 +138,12 @@ fraxtal-node-testnet-node-1 | t=2024-02-04T07:41:42+0000 lvl=warn msg="tx in in
### RPC Endpoint
```bash
-echo "$(curl -4 ifconfig.co):7545"
+echo "$(curl -4 ifconfig.co):8545"
```
#### Method:
+Check your op node status at port 7545 by
+
```bash
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"optimism_syncStatus","params":[],"id":1}' [rpc] | jq
```
@@ -186,7 +188,7 @@ You can check your status by connecting to geth console
```bash
docker exec -it fraxtal-node-$ENVIRONMENT-geth-1 geth attach http://localhost:8545
> eth.blockNumber
-35065 # it will show you the latest block - number here is just an example
+94078 # it will show you the latest block - number here is just an example
> eth.syncing
false
diff --git a/src/pages/validator/external-chains/overview.mdx b/src/pages/validator/external-chains/overview.mdx
index 21e15b65b..dc8420b65 100644
--- a/src/pages/validator/external-chains/overview.mdx
+++ b/src/pages/validator/external-chains/overview.mdx
@@ -26,6 +26,7 @@ See below for details. Read this entire article before you begin supporting exte
- [Arbitrum](arbitrum)
- [Avalanche](avalanche)
- [Binance](binance)
+ - [Blast](blast)
- [Celo](celo)
- [Centrifuge](centrifuge)
- [Ethereum](ethereum)