gRPCVerifySignature

sui-mainnet.nodit.io:443 sui.rpc.v2.SignatureVerificationService/VerifySignatureunary

Verifies a UserSignature against the provided message.

TransportgRPC

Request and response messages are identical for both transports. Only the wire protocol, headers, and client library differ.

Protocol
Native gRPC over HTTP/2 with TLS. Suited to server-side clients and grpcurl.
Content-Type
application/grpc
Headers
x-api-key
Streaming
Server, client, and bidirectional streaming are all supported.
Errors
grpc-status and grpc-message are delivered as HTTP/2 trailers.
Request Body
messageobject

The message to verify against. Today the only supported message types are PersonalMessage and TransactionData, and the Bcs.name must be set to indicate which type of message is being verified.

signatureobject

The signature to verify.

addressstring

Optional. Address to validate against the provided signature. If provided, this address will be compared against the address derived from the signature and a successful response will only be returned if they match.

jwksobject[]

The set of JWKs to use when verifying Zklogin signatures. If this is empty, the current set of valid JWKs stored on-chain will be used.

Responses
is_validboolean

Indicates if the provided signature was valid given the requested parameters.

reasonstring

If is_valid is false, this is the reason for why the signature verification failed.

X-API-KEY
RequestCU250
grpcurl
grpcurl \
  -import-path . -proto sui/rpc/v2/signature_verification_service.proto \
  -H "X-API-KEY: {YOUR_API_KEY}" \
  -d '{
  "message": {
    "name": "PersonalMessage",
    "value": "<base64-encoded message bytes>"
  },
  "signature": {
    "bcs": {
      "value": "<base64-encoded user signature>"
    }
  },
  "address": "0x0000000000000000000000000000000000000000000000000000000000000001",
  "jwks": []
}' \
  sui-mainnet.nodit.io:443 sui.rpc.v2.SignatureVerificationService/VerifySignature
Response
Example · 200
{
  "is_valid": false,
  "reason": ""
}