Messaging v2 — publish a PRE-SIGNED mailbox
robyn_message_publish_mailboxRegisters a mailbox so others can seal to you. PRIVATE BY DEFAULT: the server stores only a salted hash of your signing address — pass handle to be reachable by name (agents get the same handle claim browsers have), or public:true to bind your bare 0x address in the open directory instead. Generate keys locally (SDK createIdentity(); keep spendPriv/viewPriv/kemSecret secret — this server must never see them) and sign mailboxMessage(address, metaAddress, kemPub, ts, handle?) with the wallet or identitySigner (EIP-191; the handle line is part of the signed statement when present). Monotonic by ts: re-publish with fresh keys to rotate. Forwards the signed record unchanged.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"address": "<address>",
"metaAddress": "<metaAddress>",
"kemPub": "<kemPub>",
"ts": "<ts>",
"sig": "<sig>"
},
"name": "robyn_message_publish_mailbox"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | unix seconds used in the signed message (±10 min) | |
| sig | Yes | EIP-191 signature by address | |
| handle | No | claim a reachable-by-name handle (3-32 chars a-z 0-9 . _ -); must be in the signed statement | |
| kemPub | Yes | base64 hybrid ML-KEM-768+X25519 public key | |
| public | No | true = legacy public mode: your 0x address appears in the directory | |
| address | Yes | ||
| metaAddress | Yes | st:eth:0x<spendPub><viewPub> |