Public Keys
All Mycelia Signal signing keys in one place. Use these to verify attestation signatures.
For maximum security, verify the public key in each attestation response against your expected key. L402 responses include the secp256k1 key in the pubkey field of every response. x402 responses include the Ed25519 key. Do not trust keys from documentation alone.
Signing Keys
| Protocol | Scheme | Format | Used For | Fetch From |
|---|---|---|---|---|
| L402 | secp256k1 ECDSA | Compressed hex (33 bytes) | All 63 endpoints via Lightning | pubkey field in every L402 response |
| x402 | Ed25519 | Hex (32 bytes) | All 63 endpoints via USDC on Base | pubkey field in every x402 response |
| DLC | Schnorr (BIP-340) | Compressed hex (33 bytes) | DLC attestations (pending) | GET /dlc/oracle/pubkey |
Current Public Keys
| Node | Protocol | Public Key |
|---|---|---|
| US GC | L402 (secp256k1) | 03c1955b8c543494c4ecd86d167105bcc7ca9a91b8e06cb9d6601f2f55a89abfbf |
| Asia GC | L402 (secp256k1) | 02b1377c30c7dcfcba428cf299c18782856a12eb4fab32b87081460f4ba2deab73 |
| US GC | x402 (Ed25519) | f4f0e52b5f7b54831f965632bf1ebf72769beda4c4e3d36a593f7729ec812615 |
| Asia GC | x402 (Ed25519) | 7ab07fbe7d08cd16823e5eb0db0e21f3f38e9366d5fd00d14e95df0fb9b51a1a |
Fetching Keys Programmatically
curl -s https://api.myceliasignal.com/sho/info | jq '.pubkey,.signing_scheme,.payment_network'
The /sho/info endpoint returns the full x402 configuration including Ed25519 pubkey, all endpoint prices, payment address, and facilitator URL. The pubkey field in every paid response also identifies which node signed it.
curl -s https://api.myceliasignal.com/sho/info
# The secp256k1 public key is in the "pubkey" field of every L402 attestation. # Each GC node uses its own per-instance keypair. curl -s http://localhost:8402/internal/sign/oracle/price/btc/usd | jq -r '.pubkey'
curl -s https://api.myceliasignal.com/dlc/oracle/pubkey | jq -r '.oracle_pubkey'
Key Properties
| Property | secp256k1 (L402) | Ed25519 (x402) | Schnorr (DLC) |
|---|---|---|---|
| Key size | 33 bytes (compressed) | 32 bytes | 32 bytes (x-only) |
| Encoding | Hex string | Hex string | Hex string |
| Per-instance | Yes — each GC node has its own keypair | Yes — each GC node has its own keypair | Yes |
| Key storage | File-based (600 permissions) | File-based (600 permissions) | File-based (600 permissions) |
| Rotation policy | No scheduled rotation | No scheduled rotation | No scheduled rotation |
Each GC node (US, Asia) has its own secp256k1 keypair for L402 signing and its own Ed25519 keypair for x402 signing. This is per-instance key architecture recommended by the Bitcoin Oracle Working Group. The pubkey field in each response identifies which node produced the attestation.