Wallets know where to send money, but not where to send messages.
I’ve been experimenting with an on-chain Message Routing Record (MRR) for Solana – 1 PDA per wallet with inbox key + relay URIs, no messages stored on-chain.
MRR Devnet Explorer (connect wallet, airdrop 1 SOL, init demo MRR):
🔗 mrr-six.vercel.app/
Unaudited / experimental – wallets & messaging teams, would love your feedback.
#Solana
MRR for Solana is live.
Clone → build → init/read your Message Routing Record on devnet.
github.com/REKT369/mrr-solan…
@solana_devs
Screenshot: running example-init.ts prints the MRR record for your wallet on devnet.
For anyone curious on the infra side: I’m treating MRR as a simple routing primitive (not an inbox, not guaranteed delivery), so it should be easy for wallets to expose as a “publish messaging profile” toggle.
cc @solana_devs
MRR for Solana is live.
Clone → build → init/read your Message Routing Record on devnet.
github.com/REKT369/mrr-solan…
@solana_devs
Screenshot: running example-init.ts prints the MRR record for your wallet on devnet.
Introducing MRR: Message Routing Record for Solana
a tiny on-chain primitive that fixes the biggest missing piece in wallet-to-wallet messaging.
Every wallet should be able to say one simple thing:
“If you want to DM me, encrypt to this key and deliver to this relay.”
So I built it.
MRR is a neutral, lightweight registry that stores a wallet’s messaging profile:
🔑 Encryption public key
🌐 Primary + backup relay URIs
🏷️ Optional handle
🏁 Capability flags
🔄 Key rotation
🚫 Zero messages stored on-chain
Everything else — encryption, inbox UI, spam defenses, relays — happens off-chain where it belongs.
MRR is just the anchor point the entire ecosystem can agree on.
Today the Anchor program + TypeScript SDK are live on devnet, fully open-source.
🔗 Repo: github.com/REKT369/mrr-solan…
🆔 Devnet Program ID: 61cVB9Sj5dWWGk5fUfPCCvwpRtpMds2QW4Q5G7UqaDYV
@solana @phantom @solanafndn — would love your thoughts.
MRR is a lightweight on-chain routing primitive:
– 1 PDA per wallet
– encrypted inbox pubkey
– relay URIs + capabilities
– no messages stored on-chain
Curious what cross-chain / messaging folks think:
@wormhole @LayerZero_Labs @hyperlane @deBridgeFinance @axelar
Introducing MRR: Message Routing Record for Solana
a tiny on-chain primitive that fixes the biggest missing piece in wallet-to-wallet messaging.
Every wallet should be able to say one simple thing:
“If you want to DM me, encrypt to this key and deliver to this relay.”
So I built it.
MRR is a neutral, lightweight registry that stores a wallet’s messaging profile:
🔑 Encryption public key
🌐 Primary + backup relay URIs
🏷️ Optional handle
🏁 Capability flags
🔄 Key rotation
🚫 Zero messages stored on-chain
Everything else — encryption, inbox UI, spam defenses, relays — happens off-chain where it belongs.
MRR is just the anchor point the entire ecosystem can agree on.
Today the Anchor program + TypeScript SDK are live on devnet, fully open-source.
🔗 Repo: github.com/REKT369/mrr-solan…
🆔 Devnet Program ID: 61cVB9Sj5dWWGk5fUfPCCvwpRtpMds2QW4Q5G7UqaDYV
@solana @phantom @solanafndn — would love your thoughts.
4/
The on-chain data is tiny and stable:
enc_pubkey (32 bytes)
primary_relay_uri
backup_relay_uri
handle
capabilities
bump
That’s it.
Everything else happens off-chain — fast, cheap, flexible.





