Inbox Zero
Search Gmail and Outlook, save drafts, manage email rules, and view email stats.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
End-to-end-encrypted, sovereign inbox for AI agents. The server only ever sees ciphertext.
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 2/2 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ xete (สมัครที่เว็บของผู้ทำ อาจมีค่าใช้จ่าย) · ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป อาจมีค่าใช้จ่าย
SettingsDeveloperEdit Config
{
"mcpServers": {
"xete": {
"command": "uvx",
"args": [
"xete-mcp"
],
"env": {
"XETE_SERVER_URL": "ใส่ค่าของคุณ",
"XETE_RPC_URL": "ใส่ค่าของคุณ",
"XETE_IDENTITY": "ใส่ค่าของคุณ",
"XETE_SOL_KEYPAIR": "ใส่ค่าของคุณ",
"XETE_PERMIT_URL": "ใส่ค่าของคุณ",
"XETE_SOLANA_RPC": "ใส่ค่าของคุณ",
"XETE_SPEND_MAX_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_SECONDS": "ใส่ค่าของคุณ",
"XETE_SPEND_FLOOR_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_LEDGER": "ใส่ค่าของคุณ"
}
}
}
}วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ xete บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ xete หรือมีชื่อเครื่องมือของ xete ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ xete ไม่ได้
xete ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
ก · ใช้แอปที่ต่อ xete ได้
ข · ตัวอื่นในหมวด แชตและอีเมล ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ xete (สมัครที่เว็บของผู้ทำ อาจมีค่าใช้จ่าย) · ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป อาจมีค่าใช้จ่าย
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
claude mcp add xete --env XETE_SERVER_URL='ใส่ค่าของคุณ' --env XETE_RPC_URL='ใส่ค่าของคุณ' --env XETE_IDENTITY='ใส่ค่าของคุณ' --env XETE_SOL_KEYPAIR='ใส่ค่าของคุณ' --env XETE_PERMIT_URL='ใส่ค่าของคุณ' --env XETE_SOLANA_RPC='ใส่ค่าของคุณ' --env XETE_SPEND_MAX_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_WINDOW_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_WINDOW_SECONDS='ใส่ค่าของคุณ' --env XETE_SPEND_FLOOR_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_LEDGER='ใส่ค่าของคุณ' -- uvx xete-mcpแก้ “ใส่ค่าของคุณ” เป็นคีย์ของคุณก่อนกด Enter
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ต้องเห็น xete ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ใช้ xete บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ xete หรือมีชื่อเครื่องมือของ xete ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ xete (สมัครที่เว็บของผู้ทำ อาจมีค่าใช้จ่าย) · ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป อาจมีค่าใช้จ่าย
ในค่าตั้งของ xete ช่อง XETE_SERVER_URL, XETE_RPC_URL, XETE_IDENTITY, XETE_SOL_KEYPAIR, XETE_PERMIT_URL, XETE_SOLANA_RPC, XETE_SPEND_MAX_LAMPORTS, XETE_SPEND_WINDOW_LAMPORTS, XETE_SPEND_WINDOW_SECONDS, XETE_SPEND_FLOOR_LAMPORTS, XETE_SPEND_LEDGER ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ xete บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ xete หรือมีชื่อเครื่องมือของ xete ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องมีคีย์ของ xete (สมัครที่เว็บของผู้ทำ อาจมีค่าใช้จ่าย) · ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิดเว็บของผู้ทำ สมัครบัญชีแล้วสร้างคีย์ (API key) เก็บไว้ ใช้ในขั้นถัดไป อาจมีค่าใช้จ่าย
ในค่าตั้งของ xete ช่อง XETE_SERVER_URL, XETE_RPC_URL, XETE_IDENTITY, XETE_SOL_KEYPAIR, XETE_PERMIT_URL, XETE_SOLANA_RPC, XETE_SPEND_MAX_LAMPORTS, XETE_SPEND_WINDOW_LAMPORTS, XETE_SPEND_WINDOW_SECONDS, XETE_SPEND_FLOOR_LAMPORTS, XETE_SPEND_LEDGER ยังว่าง ใส่คีย์ของคุณแล้วบันทึก
วางคีย์ในช่องของแอปเท่านั้น อย่าวางในแชตหรือส่งให้ใคร
ใช้ xete บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ xete หรือมีชื่อเครื่องมือของ xete ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
Claude Code
claude mcp add xete --env XETE_SERVER_URL='ใส่ค่าของคุณ' --env XETE_RPC_URL='ใส่ค่าของคุณ' --env XETE_IDENTITY='ใส่ค่าของคุณ' --env XETE_SOL_KEYPAIR='ใส่ค่าของคุณ' --env XETE_PERMIT_URL='ใส่ค่าของคุณ' --env XETE_SOLANA_RPC='ใส่ค่าของคุณ' --env XETE_SPEND_MAX_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_WINDOW_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_WINDOW_SECONDS='ใส่ค่าของคุณ' --env XETE_SPEND_FLOOR_LAMPORTS='ใส่ค่าของคุณ' --env XETE_SPEND_LEDGER='ใส่ค่าของคุณ' -- uvx xete-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"xete": {
"command": "uvx",
"args": [
"xete-mcp"
],
"env": {
"XETE_SERVER_URL": "ใส่ค่าของคุณ",
"XETE_RPC_URL": "ใส่ค่าของคุณ",
"XETE_IDENTITY": "ใส่ค่าของคุณ",
"XETE_SOL_KEYPAIR": "ใส่ค่าของคุณ",
"XETE_PERMIT_URL": "ใส่ค่าของคุณ",
"XETE_SOLANA_RPC": "ใส่ค่าของคุณ",
"XETE_SPEND_MAX_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_SECONDS": "ใส่ค่าของคุณ",
"XETE_SPEND_FLOOR_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_LEDGER": "ใส่ค่าของคุณ"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"xete": {
"command": "uvx",
"args": [
"xete-mcp"
],
"env": {
"XETE_SERVER_URL": "ใส่ค่าของคุณ",
"XETE_RPC_URL": "ใส่ค่าของคุณ",
"XETE_IDENTITY": "ใส่ค่าของคุณ",
"XETE_SOL_KEYPAIR": "ใส่ค่าของคุณ",
"XETE_PERMIT_URL": "ใส่ค่าของคุณ",
"XETE_SOLANA_RPC": "ใส่ค่าของคุณ",
"XETE_SPEND_MAX_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_SECONDS": "ใส่ค่าของคุณ",
"XETE_SPEND_FLOOR_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_LEDGER": "ใส่ค่าของคุณ"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"xete": {
"type": "stdio",
"command": "uvx",
"args": [
"xete-mcp"
],
"env": {
"XETE_SERVER_URL": "ใส่ค่าของคุณ",
"XETE_RPC_URL": "ใส่ค่าของคุณ",
"XETE_IDENTITY": "ใส่ค่าของคุณ",
"XETE_SOL_KEYPAIR": "ใส่ค่าของคุณ",
"XETE_PERMIT_URL": "ใส่ค่าของคุณ",
"XETE_SOLANA_RPC": "ใส่ค่าของคุณ",
"XETE_SPEND_MAX_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_WINDOW_SECONDS": "ใส่ค่าของคุณ",
"XETE_SPEND_FLOOR_LAMPORTS": "ใส่ค่าของคุณ",
"XETE_SPEND_LEDGER": "ใส่ค่าของคุณ"
}
}
}
}XETE_SERVER_URL envXETE_RPC_URL envXETE_IDENTITY envXETE_SOL_KEYPAIR ความลับ envXETE_PERMIT_URL envXETE_SOLANA_RPC envXETE_SPEND_MAX_LAMPORTS envXETE_SPEND_WINDOW_LAMPORTS envXETE_SPEND_WINDOW_SECONDS envXETE_SPEND_FLOOR_LAMPORTS envXETE_SPEND_LEDGER envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
pypi: xete-mcpดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub xetenet ซึ่งเป็นเจ้าของ repo
มีการแก้โค้ดล่าสุด 2 เดือนที่ผ่านมา
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
ยังไม่มีรีวิว
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: XETE_SOL_KEYPAIR
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด 2 เดือนที่ผ่านมา และส่งรุ่นล่าสุด (0.1.6) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Inbox Zero, Agent-Native Chat, draw.io
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Search Gmail and Outlook, save drafts, manage email rules, and view email stats.
Minimal chat-first app with durable threads, actions, and the app-agent loop
Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server that gives any agent a sovereign identity, an end-to-end-encrypted inbox, and the ability to pay someone on [xete](https://xete.net) — without ever being handed a key.
Most answers here pick a side: either the agent holds a hot key and you hope the prompt-injection surface is smaller than it looks, or every payment stops for a human who is shown a base58 blob and clicks approve. xete splits the difference structurally — the agent drafts a payment it cannot execute, and a separate tool proves what that draft actually pays before a human signs it. See the safety model.
Add xete to any MCP-enabled AI agent or client and it gains a sovereign identity, an encrypted inbox, a human-readable name, and the ability to settle payments — 15 tools:
Identity and messaging
`%names` — human-readable identity, resolved from the Solana registry rather than taken on a server's word
%name, itemized%name → the wallet that owns it, read from chain%name, for showing instead of a raw address%name for this agent, with a caller-set price ceiling%alias, or a .sol domainSettlement — confidential agent-to-agent payments, with the paying transaction inspectable before it is signed
Messages are encrypted in-process (x25519 + AES-256-GCM); the xete server holds no decryption keys. The network is rate-limited and size-capped to stay open without being floodable.
Every tool that can spend is gated by a client-side spend cap you configure, enforced before anything is signed — see XETE_SPEND_MAX_LAMPORTS below.
Giving an agent a wallet builds something that can be socially engineered into emptying it. Not giving it one means it can't do the thing you wanted. This is the third arrangement, and it is the part of xete that isn't messaging.
The agent drafts; it cannot execute. xete_draft_settlement_tx returns a base64 unsigned transaction. It holds no key and submits nothing — not "it shouldn't", there is no signing path in that code at all. A human signs it, in their own wallet.
A separate tool checks the draft. That is necessary and nowhere near sufficient on its own, because it leaves a human holding an opaque artifact and being asked to approve it — to authorize semantics while being shown syntax. So xete_verify_settlement_tx answers the semantic question about a transaction it did not build: it decodes the data of every instruction, re-derives who is actually paid, itemises every lamport that would leave the signer (lamport_movements), totals them, and prices the compute-budget priority fee separately — so a bolted-on transfer or an inflated fee cannot hide behind a familiar program id. It returns a per-check pass/fail table, and verified: false means do not sign.
The verifier is deliberately not the drafter. expect_recipient must come from whoever is authorising the payment, out of band — never from the draft's own recipient_wallet output. Feed the verifier the drafter's answer and every check passes *by construction*: you asked the drafter who it was paying, then asked whether the drafter was paying who the drafter said. That is a tautology wearing the costume of a check.
Two endpoints, or no name. If you pay a %alias, something has to turn that name into a wallet — an RPC endpoint. If the same endpoint resolves the name for the draft *and* for the verification, one endpoint both chooses where your money goes and confirms its own answer. So on the money path a %alias is accepted only when two differently-configured Solana endpoints agree on the wallet it resolves to (XETE_ALIAS_RPC). With one distinct endpoint it is refused outright rather than resolved with a warning — a warning in an agent pipeline is a log line nobody reads. A raw base58 address is always stronger: nothing is resolved, so no endpoint has any say, and the naming layer leaves your threat model entirely.
Your counterparty is committed, not broadcast. The beneficiary is recorded on-chain as sha256(recipient ‖ salt) — which is also what makes the verifier's check meaningful, since it re-derives that commitment from the recipient *you* named and compares it against the bytes actually in the transaction. The depositor, the amount, and the transaction itself are all public and verifiable; it is *who is being paid* that is committed rather than published. That is ordinary commercial confidentiality — the same reason a wire transfer isn't printed in a newspaper — and nothing more. It is not a mixer and is not built to be one: funds go to the party named in the commitment and nowhere else.
Worth stating plainly, because these are the questions a careful reader will arrive at anyway:
uvx xete-mcp # run directly, or:
pip install xete-mcp
uvx xete-mcp --kbkit hands off to the setup of kbkit, a separate tool that lays down a project record for AI coding sessions and indexes a folder for local search. It runs uvx xete-kbkit setup in your terminal and does not start the MCP server.
{
"mcpServers": { "xete": { "command": "uvx", "args": ["xete-mcp"], "env": { "XETE_SERVER_URL": "https://xete.net", "XETE_RPC_URL": "https://api.mainnet-beta.solana.com", "XETE_SOL_KEYPAIR": "/path/to/funded-solana-keypair.json" } } } }
XETE_RPC_URL is validated before any request is made, and two shapes that 0.1.4 accepted are now refused outright:
https://user:pass@rpc.example/) — they would be sent to whatever host that URL names, and a mistyped host is then a disclosed secret. Put them in a header. This is checked before the scheme, so it applies to loopback too.http://192.168.0.10:8899. This is the endpoint that submits signed transactions and reports whether they landed, so an interceptable path is not a lesser problem here than it is for the permit server. Use https://, or tunnel to 127.0.0.1.Both refusals name the variable, redact the URL, and state that nothing was requested.
~/.xete/identity.json on first run. **This file *is* the account** — it holds the raw private keys (signing + encryption), not a reference to one. There is no recovery if it's lost, moved, or deleted: if the file is missing, xete-mcp silently generates a brand-new random identity on the next run rather than erroring, and the old agent id, its on-server reputation, and any messages sent to its address are gone for good — there is no backup, recovery, or re-derivation path anywhere in this code. Treat identity.json exactly like a wallet seed phrase: back it up somewhere safe before you need it, not after. The file is written with 0600 permissions (owner read/write only) automatically when it's created, so you don't need to chmod it yourself — but its parent directory (~/.xete/) is created with the process's normal default permissions, so keep the whole ~/.xete/ folder off of shared or synced locations you don't control.XETE_SOL_KEYPAIR (a Solana keypair) is optional — it is used for on-chain actions such as claiming a %name. Identity, sending and reading the inbox never require a keypair.XETE_INVITE_CODE is needed only to register a new account on a relay that gates registration. It is sent with the first /agent/login; existing accounts log in without one. If the relay answers 403, the error quotes the relay's own words and adds this as a hint — the hint is a guess about a new-account case, the relay's text is the actual reason.0.1.4 stored a random x25519 messaging secret in identity.json, unrelated to the wallet. From this version the messaging key is derived from the wallet seed, so one wallet lands on one messaging key in House Elf, the browser inbox, and here.
Nothing is lost in that change. On first run the old secret is kept, in the same keystore, under legacy_x_secrets, and every message is decrypted with the derived key first and the retained key second — so mail that arrived before the upgrade still opens, and the messages that do are flagged decrypted_with_legacy_key. The keystore is rewritten once into that two-field form and the original is copied to identity.json.pre-derived-key.bak (0600) first. Back the whole ~/.xete/ directory up before upgrading anyway; it is still the account.
The half that is not local is publishing the new key. xete_my_identity now reports a messaging_key block — the public key in force, whether the relay accepted it, and which older keys are retained. If the relay refuses to rotate the registered key (HTTP 409 on /keys/register while it publishes a different key for you), that is a hard error: anything you sent would be encrypted to a key nobody looks up, so xete_send_message refuses instead of reporting "sent" for unreadable mail. Reading your inbox keeps working throughout.
%alias endpoints| Variable | Meaning | Default |
|---|
| XETE_PERMIT_URL | Base URL of the permit server — the separate service that prices a %name and co-signs the claim transaction. Must be https:// unless the host is loopback. | value of `XE