Skip to main content

MeshCore Repeater Collisions

MeshCore effectively uses the first 2 hex characters of your public key as a short “node ID” prefix.
If two nodes in the same mesh share that prefix (example: a3), tools that rely on the short ID can get confused.

This guide shows how to change your keypair so your repeater gets a different 2-digit prefix, using a serial (USB) connection and the MeshCore CLI command:

set prv.key <PRIVATE_KEY_HERE>

Symptoms of a prefix collision

  • You see ambiguous node IDs (same 2-digit prefix) in neighbor lists / path info
  • Debugging range/links becomes annoying because two nodes “look” the same at a glance

What you’ll need

Step 1: Check what prefixes are already in use nearby

You can check prefixes a couple different ways:

Option A: MeshCore Analyzer

Browse the repeater list for the region BOS - Boston, US and look at the prefixes already in use:
https://analyzer.letsmesh.net/nodes/repeaters

Option B: Discord bot

In the Discord server, run the command /open in #meshcore-bot channel, and check the prefixes shown there.

Goal: pick a prefix that isn’t already common around your local mesh.


Step 2: Generate a new keypair with your chosen prefix

You can generate a keypair either with our Discord bot MeshBuddy or via the web keygen.

Option A: Discord (MeshBuddy)

In Discord, go to the #meshcore-bot channel and run:

  • /keygen XX

Where XX is the first two hex characters of the prefix you want.

Then copy the private key it returns.

Option B: Web keygen

Go to: https://gessaman.com/mc-keygen/

  1. Enter/select your target prefix (2 hex characters)
  2. Generate a keypair
  3. Copy the private key

MeshCore expects the private key as 128 hex characters (one continuous string).


Step 3: Set the new private key over serial

Go to: https://flasher.meshcore.co.uk/

  1. Click on Console
  2. Select the device in the popup window.
  3. Enter the command below to change the key.
set prv.key <PRIVATE_KEY_HERE>

Paste safety checklist

  • The key is exactly 128 hex characters
  • No spaces, no line breaks, no quotes
  • Make sure you didn’t accidentally copy extra characters before/after the key

Step 4: Reboot the repeater

reboot

Step 5: Verify

After reboot:

  1. Check the repeater’s public key (web UI/app/console)
  2. Confirm the first 2 hex characters match the prefix you chose
  3. Send a few adverts so the network sees the new identity

Important gotchas

Changing the private key changes the node’s identity.

After re-keying, you may need to update:

  • ACLs / allowlists that reference the old pubkey
  • Dashboards, automations, or monitoring that key off the old identity
  • Anything else that “remembers” your node by pubkey

A solid extra step is to save a small “rebuild kit” for each repeater (in a password manager or somewhere safe):

  • Private key (the 128-hex string)
  • Repeater name
  • Admin password
  • Lat/long (if you publish location)

If you ever need to reflash or replace a board, you can restore these values and bring it back up identical to what’s in the field, without guessing or reconfiguring from scratch.


Quick command summary

set prv.key <private_key>
reboot