lightning-checkmessage

lightning-checkmessage -- Command to check if a signature is from a node

SYNOPSIS

checkmessage message zbase [pubkey]

DESCRIPTION

The checkmessage RPC command is the counterpart to signmessage: given a node id (pubkey), signature (zbase) and a message, it verifies that the signature was generated by that node for that message (more technically: by someone who knows that node's secret).

As a special case, if pubkey is not specified, we will try every known node key (as per listnodes), and verification succeeds if it matches for any one of them. Note: this is implemented far more efficiently than trying each one, so performance is not a concern.

  • message (string): Message to be checked against the signature.
  • zbase (string): The Zbase32 encoded signature to verify.
  • pubkey (pubkey, optional): The Zbase32 encoded signature to verify.

RETURN VALUE

On success, an object is returned, containing:

  • verified (boolean) (always true): Whether the signature was valid.
  • pubkey (pubkey): The pubkey parameter, or the pubkey found by looking for known nodes.

ERRORS

On failure, an error is returned and core lightning exit with the following error code:

  • -32602: Parameter missed or malformed;
  • 1301: pubkey not found in the graph.

AUTHOR

Rusty Russell <[email protected]> is mainly responsible.

SEE ALSO

lightning-signmessage(7)

RESOURCES

Main web site: https://github.com/ElementsProject/lightning

EXAMPLES

Example 1:

Request:

lightning-cli checkmessage -k "message"="testcase to check new rpc error" "zbase"="d66bqz3qsku5fxtqsi37j11pci47ydxa95iusphutggz9ezaxt56neh77kxe5hyr41kwgkncgiu94p9ecxiexgpgsz8daoq4tw8kj8yx" "pubkey"="03be3b0e9992153b1d5a6e1623670b6c3663f72ce6cf2e0dd39c0a373a7de5a3b7"
{
  "id": "example:checkmessage#1",
  "method": "checkmessage",
  "params": {
    "message": "testcase to check new rpc error",
    "zbase": "d66bqz3qsku5fxtqsi37j11pci47ydxa95iusphutggz9ezaxt56neh77kxe5hyr41kwgkncgiu94p9ecxiexgpgsz8daoq4tw8kj8yx",
    "pubkey": "03be3b0e9992153b1d5a6e1623670b6c3663f72ce6cf2e0dd39c0a373a7de5a3b7"
  }
}

Response:

{
  "pubkey": "03be3b0e9992153b1d5a6e1623670b6c3663f72ce6cf2e0dd39c0a373a7de5a3b7",
  "verified": true
}

Example 2:

Request:

lightning-cli checkmessage -k "message"="this is a test!" "zbase"="d6tqaeuonjhi98mmont9m4wag7gg4krg1f4txonug3h31e9h6p6k6nbwjondnj46dkyausobstnk7fhyy998bhgc1yr98dfmhb4k54d7"
{
  "id": "example:checkmessage#2",
  "method": "checkmessage",
  "params": {
    "message": "this is a test!",
    "zbase": "d6tqaeuonjhi98mmont9m4wag7gg4krg1f4txonug3h31e9h6p6k6nbwjondnj46dkyausobstnk7fhyy998bhgc1yr98dfmhb4k54d7"
  }
}

Response:

{
  "pubkey": "nodeid010101010101010101010101010101010101010101010101010101010101",
  "verified": true
}

Core Lightning (previously c-lightning) is a lightweight, highly customizable and standard compliant implementation of the Lightning Network protocol.

© 2023 Core Lightning
All rights reserved.

Discussion Forum

The official Core Lightning forum is hosted at discuss.corelightning.org

BuildonL2 Community

The official BuildOnL2 community lives at community.corelightning.org. Join us and build the future of bitcoin on lightning.

Mailing List

For general discussions about CLN implementation, use [email protected]. For the Lightning Network, use [email protected]

Telegram

Community-driven telegram group where most of the node operators hang out. Go to https://t.me/lightningd to join.

Discord

Community-driven discord server where the devs flock together. Go to https://discord.gg/w27fMFESMN to join.

Internet Relay Chat

Don't hesitate to reach out to us on IRC at #lightning-dev @ libera.chat, #c-lightning @ libera.chat.