Public Keys

All Mycelia Signal signing keys in one place. Use these to verify attestation signatures.

Check which key signed

Every signed data response carries the signing node's Ed25519 public key in its pubkey field. Check that key against the published keys below before trusting the signature: a response will always verify against a key it supplies itself, so the field only tells you which node to check, not whether to trust it.

Signing Keys

What is signedSchemeFormatFetch From
Data responses (x402 and L402)Ed25519 (RFC 8032) over the canonical's UTF-8 bytesKey: hex, 32 bytes. Signature: hex, 64 bytespubkey field in every signed response; GET /keys/ed25519
L402 responses (additional)BIP-340 Schnorr (secp256k1) over SHA-256 of the canonical's UTF-8 bytesKey: x-only hex, 32 bytes. Signature: hex, 64 bytesbip340 object in every signed L402 response; GET /keys/bip340
DLCSchnorr (BIP-340)Compressed hex (33 bytes)GET /dlc/oracle/pubkey

Both payment rails deliver the same Ed25519-signed data. L402 (Lightning) responses also carry a second attestation over the same canonical, for Bitcoin tooling: a bip340 object with a BIP-340 Schnorr signature. Either signature is sufficient on its own. Lightning itself secures the payment.

Current Public Keys

NodeSchemePublic KeySigns, for example
US nodeEd25519f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615Price and FX, US and EU macro, commodities, gas, compute, DeFi yield, inference pricing, COT
Asia nodeEd255197ab07fbe7d08cd16823e5eb0db0e21f3f38e9366d5fd00d14e95df0fb9b51a1aIndices (MSVI, MSXI, MSSI, MSTI), derivatives and funding, perp regimes, synopsis, intelligence, prediction markets, support/resistance, weather, marine, history, economic calendar
Price Feed nodeEd2551946ddbac08201ea6b7010338c4ad4a520c627c829d1d06c128f9a8722665c5d6aThe five Direct feeds the Blockstream Liquid price oracle network polls (LBTC, USDT, EURx, DePix, USDC against USD). Not served on api.myceliasignal.com
RailSchemePublic KeySigns
Lightning (L402)BIP-340 (x-only secp256k1)3d436ccaeaea1fc89383b7dcfe0e8d8cce7244bf6426c7cc54f7bcbe5540ec9eThe bip340 attestation on every signed L402 response

The pubkey field in each response is authoritative for which node signed it; the right-hand column is a guide, not a contract. The Lightning key is separate from both node keys and from the DLC oracle's key.

Fetching Keys Programmatically

bash — Ed25519 signing keys
curl -s https://api.myceliasignal.com/keys/ed25519
bash — BIP-340 signing key (L402)
curl -s https://api.myceliasignal.com/keys/bip340
bash — x402 info + Ed25519 pubkey
curl -s https://api.myceliasignal.com/sho/info | jq '.pubkey,.signing_scheme,.payment_network'

The /sho/info endpoint returns the full x402 configuration including an Ed25519 pubkey, all endpoint prices, payment address, and facilitator URL.

bash — full x402 info
curl -s https://api.myceliasignal.com/sho/info
bash — Schnorr key (DLC)
curl -s https://api.myceliasignal.com/dlc/oracle/pubkey | jq -r '.oraclePubkey'

Key Properties

PropertyEd25519 (data responses)BIP-340 (L402 responses)Schnorr (DLC)
Key size32 bytes32 bytes (x-only)33 bytes as published (compressed); BIP-340 verifies with the 32-byte x-only form
EncodingHex stringHex stringHex string
Per-instanceYes — each node has its own keypairOne key, on the node that runs the Lightning railYes
Key storageFile-based (600 permissions)File-based (600 permissions)File-based (600 permissions)
Rotation policyNo scheduled rotationNo scheduled rotationNo scheduled rotation
Per-instance key architecture

Each node (US, Asia, Price Feed) has its own Ed25519 keypair, generated on that node and never copied between them, and the pubkey field in each response identifies which node produced the attestation. This is per-instance key architecture recommended by the Bitcoin Oracle Working Group.