diff --git a/node/index.mdx b/node/index.mdx
index 39a382e..7086971 100644
--- a/node/index.mdx
+++ b/node/index.mdx
@@ -6,7 +6,7 @@ keywords: ["sei node", "node operations", "validator", "RPC node", "sei blockcha
---
import { VersionTable } from '/snippets/version-table.jsx';
-import { RandomPeers } from '/snippets/random-peers.jsx';
+import { Seeds } from '/snippets/seeds.jsx';
**Power the Sei network infrastructure**
@@ -209,16 +209,6 @@ For the current recommended version, see the Network Versions table above.
The default init mode is **full**, in which RPC and P2P bind to all interfaces. For **validator** or **seed** nodes, use `--mode validator` or `--mode seed`. In these modes, RPC and P2P bind to localhost only. For the full validator init example, see the [Validator Operations Guide](/node/validators).
-You can find peers here:
-
-- Sei Mainnet (pacific-1):
-
-
-
-- Sei Testnet (atlantic-2):
-
-
-
```bash
# Initialize node (default mode is full: RPC/P2P bind to all interfaces)
# --chain-id is required, e.g. pacific-1 or atlantic-2
@@ -232,13 +222,32 @@ seid init --chain-id
# discovery works with no manual configuration. Devnets (arctic-1) and
# unknown/private chains get none, and any bootstrap-peers value you already set
# is never overwritten.
+```
-# Optionally configure additional persistent peers in config.toml.
-PEERS=""
+##### Peer discovery
-#Set persistent peers in config.toml
-sed -i 's/persistent-peers = .*/persistent-peers = "'$PEERS'"/' ~/.sei/config/config.toml
-```
+As of **v6.6.2**, `seid init` writes the Sei Labs seed nodes into `bootstrap-peers`, so a
+fresh node finds peers with no further configuration. The seeds run in three regions per
+network and gossip the rest of the network to you over PEX, so there is no peer list to
+maintain.
+
+
+ Seeds belong in `bootstrap-peers`, not `persistent-peers`. Bootstrap peers seed your
+ address book and may be dropped once you have real peers, whereas `persistent-peers`
+ holds connections open indefinitely, which is only appropriate for nodes you operate
+ yourself.
+
+
+If you need to set them by hand, for example on a node initialized before v6.6.2 or a
+home directory you did not create with `seid init`, the values are:
+
+- Sei Mainnet (pacific-1):
+
+
+
+- Sei Testnet (atlantic-2):
+
+
##### Configure app settings
diff --git a/node/technical-reference.mdx b/node/technical-reference.mdx
index 0b42f0b..ad805e1 100644
--- a/node/technical-reference.mdx
+++ b/node/technical-reference.mdx
@@ -368,7 +368,7 @@ persistent-peers = ""
upnp = false
max-connections = 100
max-outbound-connections = 20
-max-packet-msg-payload-size = 10240
+max-packet-msg-payload-size = 1000000
handshake-timeout = "10s"
dial-timeout = "3s"
# How often the node accepts a new inbound connection. A larger interval paces
diff --git a/node/troubleshooting.mdx b/node/troubleshooting.mdx
index 7135cff..82dd16f 100644
--- a/node/troubleshooting.mdx
+++ b/node/troubleshooting.mdx
@@ -4,7 +4,7 @@ description: 'Detailed guide for troubleshooting node problems.'
keywords: ['sei node', 'blockchain node', 'node configuration', 'bug', 'troubleshooting']
---
-import { RandomPeers } from '/snippets/random-peers.jsx';
+import { Seeds } from '/snippets/seeds.jsx';
Knowing common errors and their solutions helps keep your node healthy.
@@ -249,9 +249,14 @@ ERR peer handshake failed endpoint={} err=EOF module=p2p
**Resolution steps:**
-1. **Update peer configurations** with current node IDs:
+1. **Reset peer configuration to the Sei Labs seeds.** These are stable published
+ addresses, so a stale or mismatched node ID is the usual cause of this error:
-
+
+
+ On `seid` v6.6.2 and later, `seid init` writes these for you. Re-running `init`
+ against an existing home will not overwrite a `bootstrap-peers` value you have
+ already set, so edit `config.toml` directly if you need to replace one.
2. **Verify network connectivity:**
diff --git a/snippets/random-peers.jsx b/snippets/random-peers.jsx
deleted file mode 100644
index 2053422..0000000
--- a/snippets/random-peers.jsx
+++ /dev/null
@@ -1,175 +0,0 @@
-export const RandomPeers = ({ format = 'bash', network = 'mainnet', count = 5 }) => {
- const PEERS = {
- mainnet: [
- 'd53ab7681ed0df3d3249fc0132df7c3a131c9c1a@45.250.253.40:51656',
- '4ee8aea5bb58e9038d72e74322e3bba755287398@202.8.8.183:11956',
- '81409623ae4da3ec7b400cf640dea0b0999a964b@57.128.230.96:51556',
- '61a5be64b5215786fe5da712584678d0626636b5@87.249.137.71:51556',
- 'f83c536f43df9a5d900cd3c2f702c04d7dddc7b5@136.243.67.45:11956',
- 'b8d600a2f568576b5a2df5ee649cf9b809389064@162.19.62.176:26756',
- '57860b18ed3e1bbe8901ba73f2e63c7e6fe8b3d3@57.129.54.81:26656',
- '04fc6bba6c5c33034811612dca31c7adda24b299@91.134.60.37:16856',
- 'de64b779c7f4091e6f1765f5ca4c46f9d3011732@65.108.70.106:46656',
- '3be6b24cf86a5938cce7d48f44fb6598465a9924@p2p.state-sync.pacific-1.seinetwork.io:26656',
- '70e0c91b83b5ed1beaca798267f2debdf97dac10@18.156.6.83:26656',
- 'dd6b1ae002a15c1c8a38e05660f49a93c75d4159@148.251.181.225:26656'
- ],
- testnet: [
- '71beea83970431f55816eee5f066a611a1dc80f7@p2p.state-sync.atlantic-2.seinetwork.io:26656',
- '65c257f9275beb1b99ca169ef89743c034b15db0@3.76.192.224:26656',
- '33588592e477c5238ff2a5d8dc765f85790ef853@23.109.47.225:26656',
- 'babc3f3f7804933265ec9c40ad94f4da8e9e0017@testnet-seed.rhinostake.com:11956',
- '8542cd7e6bf9d260fef543bc49e59be5a3fa9074@seed.publicnode.com:56656'
- ]
- };
-
- const pickRandom = (arr, n) => {
- const shuffled = [...arr];
- for (let i = shuffled.length - 1; i > 0; i--) {
- const j = Math.floor(Math.random() * (i + 1));
- [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
- }
- return shuffled.slice(0, Math.min(n, arr.length));
- };
-
- const CopyIcon = ({ className }) => (
-
- );
-
- const CheckIcon = ({ className }) => (
-
- );
-
- const ShuffleIcon = ({ className }) => (
-
- );
-
- const pool = PEERS[network] ?? [];
-
- // Peers are inlined, not fetched. Seed with a deterministic slice so the
- // first paint already shows peers (no misleading "loading" text, no
- // SSR/hydration mismatch), then randomize on the client in useEffect.
- const [peers, setPeers] = useState(() => pool.slice(0, count));
- const [copied, setCopied] = useState(false);
-
- const shuffle = () => {
- setPeers(pickRandom(pool, count));
- };
-
- useEffect(() => {
- shuffle();
- }, [network, count]);
-
- if (pool.length === 0) {
- return (
-