/build/rpc / cosign / session
cosign.attest
cosign.attest "session_id" "address" ( "signature" ) BIP-322 peer attestation (two-step challenge/response flow). Step 1: Generate challenge cosign.attest session_id=<sid> address=<addr> Returns: {"challenge": "..."} Step 2: Verify signature First sign challenge: signmessage <address> <challenge> Then verify: cosign.attest session_id=<sid> address=<addr> signature=<sig> Returns: {"verified": true, "peer": {...}} Arguments: 1. session_id (string, required) Session ID 2. address (string, required) Bitcoin address to attest with 3. signature (string, optional) Base64 signature (for step 2) Result (Step 1 (challenge generation)): { (json object) "challenge" : "str" (string) Challenge string to sign } Result (Step 2 (signature verification)): { (json object) "verified" : true|false, (boolean) Whether signature was valid "peer" : { (json object) Verified peer info "address" : "str" (string) Peer's verified address } } Examples: Step 1: Generate challenge > bitcoin-cli cosign.attest "session_abc123" "bc1q..." Step 2: Sign challenge > bitcoin-cli signmessage "bc1q..." "cosign|session_abc123|word1-word2-..." Step 3: Verify signature > bitcoin-cli cosign.attest "session_abc123" "bc1q..." "signature_base64"
Signature
cosign.attest(session_id: string, address: string, signature?: string) → any Code samples
curl --user "$RPC_USER:$RPC_PASS" \
--data-binary '{"jsonrpc":"1.0","id":"docs","method":"cosign.attest","params":["\"<session_id>\"","\"<address>\"","\"<signature>\""]}' \
-H 'content-type: text/plain;' \
http://127.0.0.1:8332/ Parameters
| Name | Type | Req. | Description |
|---|---|---|---|
| session_id | string | yes | Session ID |
| address | string | yes | Bitcoin address to attest with |
| signature | string | — | Base64 signature (for step 2) Result (Step 1 (challenge generation)): { (json object) "challenge" : "str" (string) Challenge string to sign } Result (Step 2 (signature verification)): { (json object) "verified" : true|false, (boolean) Whether signature was valid "peer" : { (json object) Verified peer info "address" : "str" (string) Peer's verified address } } |
Result
Type: any
No `Result:` section in live help output.
Source: services/core-node/bcore/src/rpc/cosign.cpp:949
C++ symbol: cosign_attest