The Rust relayer exposes these routes. Routes are defined inDocumentation Index
Fetch the complete documentation index at: https://docs.memwal.ai/llms.txt
Use this file to discover all available pages before exploring further.
services/server/src/main.rs.
See also:
Authentication
All/api/* routes require signed headers. The SDK handles this automatically.
Required Headers
| Header | Description |
|---|---|
x-public-key | Hex-encoded Ed25519 public key (32 bytes) |
x-signature | Hex-encoded Ed25519 signature (64 bytes) |
x-timestamp | Unix timestamp in seconds (5-minute validity window) |
Optional Headers
| Header | Description |
|---|---|
x-account-id | MemWalAccount object ID hint — speeds up account resolution when not cached |
x-delegate-key | Delegate private key (hex) — used by the default SDK for SEAL decrypt flows |
Signature Format
The signed message is:{timestamp}.{method}.{path}.{body_sha256}
The relayer verifies the Ed25519 signature, then resolves the owner by looking up the public key in onchain MemWalAccount.delegate_keys.
Public Routes
GET /health
Service health check. No authentication required.
Response:
POST /sponsor
Proxy to the SEAL/Walrus sidecar’s /sponsor endpoint for sponsored transactions. No authentication required.
POST /sponsor/execute
Proxy to the sidecar’s /sponsor/execute endpoint. No authentication required.
Protected Routes
POST /api/remember
Submit text as an encrypted memory job. The relayer returns after creating a background job; embedding, SEAL encryption, Walrus upload, and vector indexing continue asynchronously.
Request:
namespace defaults to "default" if omitted.
Response: 202 Accepted
GET /api/remember/:job_id
Poll a remember job.
Response:
POST /api/remember/bulk
Submit up to 20 memories in one request. job_ids[i] corresponds to items[i].
Request:
202 Accepted
POST /api/remember/bulk/status
Poll a batch of remember jobs.
Request:
POST /api/recall
Search for memories matching a natural language query. Returns decrypted plaintext results.
Request:
limit defaults to 10. namespace defaults to "default".
Response:
POST /api/remember/manual
Register a client-encrypted payload. The client sends SEAL-encrypted data (base64) and a precomputed embedding vector. The relayer uploads the encrypted bytes to Walrus and stores the vector mapping.
Request:
POST /api/recall/manual
Search with a precomputed query vector. Returns blob IDs and distances only — the client handles downloading and decrypting.
Request:
POST /api/analyze
Extract facts from text using an LLM, then enqueue each fact as a separate memory job.
Request:
202 Accepted
POST /api/ask
Recall memories, inject them into an LLM prompt, and return an AI-generated answer with the context used.
Request:
limit defaults to 5. namespace defaults to "default".
Response:
POST /api/restore
Rebuild missing vector entries for one namespace. Queries onchain blobs by owner and namespace, downloads from Walrus, decrypts, re-embeds, and re-indexes only the entries missing from the local database.
Request:
limit defaults to 50.
Response: