Skip to content

EVM Contract Types

This page documents the data types used in the Signet EVM Contract.

SignRequest

Request structure for initiating a signature via sign.

struct SignRequest {
    bytes32 payload;
    string path;
    uint32 keyVersion;
    string algo;
    string dest;
    string params;
}

Fields

FieldTypeDescription
payloadbytes3232-byte data to be signed (typically a hash)
pathstringDerivation path for the signing key
keyVersionuint32Version of the MPC key to use
algostringSigning algorithm (optional, default: secp256k1)
deststringResponse destination chain (optional)
paramsstringAdditional parameters as JSON (optional)

Response

Response structure containing a signature for a request.

struct Response {
    bytes32 requestId;
    Signature signature;
}

Fields

FieldTypeDescription
requestIdbytes32Identifier of the original request
signatureSignatureECDSA signature for the request

Signature

ECDSA signature structure returned by the MPC network.

struct Signature {
    AffinePoint bigR;
    uint256 s;
    uint8 recoveryId;
}

Fields

FieldTypeDescription
bigRAffinePointR point of the ECDSA signature
suint256s scalar of the signature
recoveryIduint8Recovery ID for public key recovery (0 or 1)

AffinePoint

Represents a point on the secp256k1 elliptic curve.

struct AffinePoint {
    uint256 x;
    uint256 y;
}

Fields

FieldTypeDescription
xuint256x coordinate of the point
yuint256y coordinate of the point

Notes

  • For the signature's R point, x is typically used as the r value in RSV format