Versions in this module Expand all Collapse all v1 v1.7.2 Jul 4, 2026 v1.7.1 Jul 3, 2026 Changes in this version + const OpTypeKeygen + const OpTypeRefresh + const OpTypeReshare + const OpTypeSign + const RPCErrorInternal + const RPCErrorInvalidParams + const RPCErrorInvalidProtocol + const RPCErrorInvalidRequest + const RPCErrorKeyNotFound + const RPCErrorKeygenInProgress + const RPCErrorMPCNotReady + const RPCErrorMethodNotFound + const RPCErrorProtocolNotFound + const RPCErrorQuotaExceeded + const RPCErrorSessionNotFound + const RPCErrorUnauthorized + var Codec pcodecs.Manager + var ErrGPUNotAvailable = errors.New("mpcvm: GPU backend not available (no plugin dlopened)") + var ErrInsufficientParties = errors.New("insufficient parties for operation") + var ErrInvalidOperation = &BlockError + var ErrInvalidSignature = errors.New("invalid signature") + var ErrInvalidThreshold = errors.New("invalid threshold configuration") + var ErrKeyNotFound = errors.New("key not found") + var ErrKeygenInProgress = errors.New("keygen already in progress") + var ErrNotInitialized = errors.New("MPC not initialized") + var ErrQuotaExceeded = errors.New("signing quota exceeded") + var ErrSessionExpired = errors.New("session expired") + var ErrSessionNotFound = errors.New("session not found") + var ErrSigningInProgress = errors.New("signing session already in progress") + var ErrUnauthorizedChain = errors.New("unauthorized chain") + var VMID = ids.ID + var Version = &version.Semantic + func ComputeAttestationPayload(domain AttestationDomain, subjectID, commitmentRoot [32]byte, epoch uint64) [32]byte + func DetectEquivocation(a, b *QuantumAttestation) bool + func VerifyBridgeAttestation(groupPubKey []byte, bt BridgeTransfer, sig []byte) bool + type AppNetwork interface + Broadcast func(ctx context.Context, msg []byte) error + SendTo func(ctx context.Context, nodeID ids.NodeID, msg []byte) error + type AttestationDomain string + const DomainBridgeTransfer + const DomainEpochBeacon + const DomainOracleRead + const DomainOracleWrite + const DomainSessionComplete + type BLSHandler struct + func (h *BLSHandler) Keygen(ctx context.Context, partyID party.ID, partyIDs []party.ID, threshold int) (KeyShare, error) + func (h *BLSHandler) Name() Protocol + func (h *BLSHandler) Refresh(ctx context.Context, share KeyShare) (KeyShare, error) + func (h *BLSHandler) Reshare(ctx context.Context, share KeyShare, newPartyIDs []party.ID, newThreshold int) (KeyShare, error) + func (h *BLSHandler) Sign(ctx context.Context, share KeyShare, message []byte, signers []party.ID) (Signature, error) + func (h *BLSHandler) SupportedCurves() []string + func (h *BLSHandler) Verify(pubKey []byte, message []byte, signature Signature) (bool, error) + type BatchSignParams struct + KeyID string + MessageHashes []string + RequestingChain string + type BatchSignResult struct + SessionIDs []string + Status string + type Block struct + BlockHeight uint64 + BlockTimestamp int64 + ID_ ids.ID + Operations []*Operation + ParentID_ ids.ID + func (b *Block) Accept(ctx context.Context) error + func (b *Block) Bytes() []byte + func (b *Block) ChoicesStatus() choices.Status + func (b *Block) Height() uint64 + func (b *Block) ID() ids.ID + func (b *Block) Parent() ids.ID + func (b *Block) ParentID() ids.ID + func (b *Block) Reject(ctx context.Context) error + func (b *Block) SetStatus(status choices.Status) + func (b *Block) Status() uint8 + func (b *Block) Timestamp() time.Time + func (b *Block) Verify(ctx context.Context) error + type BlockError struct + Message string + func (e *BlockError) Error() string + type BridgeTransfer struct + Amount uint64 + Asset [32]byte + DstChainID uint32 + Nonce uint64 + Recipient [20]byte + SrcChainID uint32 + func (bt BridgeTransfer) Digest() [32]byte + type BridgeTransferAttestation struct + CreatedAt int64 + Digest [32]byte + GroupPubKey []byte + KeyID string + Signature []byte + Signers []party.ID + Transfer BridgeTransfer + type CGGMP21Handler struct + func (h *CGGMP21Handler) Keygen(ctx context.Context, partyID party.ID, partyIDs []party.ID, threshold int) (KeyShare, error) + func (h *CGGMP21Handler) Name() Protocol + func (h *CGGMP21Handler) Refresh(ctx context.Context, share KeyShare) (KeyShare, error) + func (h *CGGMP21Handler) Reshare(ctx context.Context, share KeyShare, newPartyIDs []party.ID, newThreshold int) (KeyShare, error) + func (h *CGGMP21Handler) SetExecutor(executor *ProtocolExecutor) + func (h *CGGMP21Handler) SetMessageRouter(router MessageRouter) + func (h *CGGMP21Handler) Sign(ctx context.Context, share KeyShare, message []byte, signers []party.ID) (Signature, error) + func (h *CGGMP21Handler) SupportedCurves() []string + func (h *CGGMP21Handler) Verify(pubKey []byte, message []byte, signature Signature) (bool, error) + type CMPKeyShare struct + Config *cmpconfig.Config + func (s *CMPKeyShare) Generation() uint64 + func (s *CMPKeyShare) PartyID() party.ID + func (s *CMPKeyShare) Protocol() Protocol + func (s *CMPKeyShare) PublicKey() []byte + func (s *CMPKeyShare) Serialize() ([]byte, error) + func (s *CMPKeyShare) Threshold() int + func (s *CMPKeyShare) TotalParties() int + type CancelSessionParams struct + SessionID string + type ChainPermissions struct + AllowedKeyTypes []string + CanKeygen bool + CanReshare bool + CanSign bool + ChainID string + ChainName string + DailySigningLimit uint64 + MaxSigningSize int + RequirePreHash bool + type Client struct + func NewClient(endpoint, chainID string) *Client + func (c *Client) BatchSign(ctx context.Context, keyID string, messageHashes [][]byte) ([]string, error) + func (c *Client) GetAddress(ctx context.Context, keyID string) ([]byte, error) + func (c *Client) GetInfo(ctx context.Context) (*ThresholdInfo, error) + func (c *Client) GetKey(ctx context.Context, keyID string) (*KeyInfo, error) + func (c *Client) GetKeygenStatus(ctx context.Context, sessionID string) (*KeygenResponse, error) + func (c *Client) GetProtocolInfo(ctx context.Context, protocol string) (*ProtocolInfo, error) + func (c *Client) GetProtocols(ctx context.Context) ([]ProtocolInfo, error) + func (c *Client) GetPublicKey(ctx context.Context, keyID string) ([]byte, error) + func (c *Client) GetQuota(ctx context.Context) (*QuotaInfo, error) + func (c *Client) GetSignature(ctx context.Context, sessionID string) (*SignatureResponse, error) + func (c *Client) GetStats(ctx context.Context) (*NetworkStats, error) + func (c *Client) Health(ctx context.Context) (map[string]interface{}, error) + func (c *Client) IsReady(ctx context.Context) (bool, error) + func (c *Client) Keygen(ctx context.Context, req KeygenRequest) (*KeygenResponse, error) + func (c *Client) ListKeys(ctx context.Context) ([]KeyInfo, error) + func (c *Client) Refresh(ctx context.Context, keyID string) (*KeygenResponse, error) + func (c *Client) Reshare(ctx context.Context, keyID string, newPartyIDs []string, newThreshold int) (*KeygenResponse, error) + func (c *Client) Sign(ctx context.Context, req SignRequest) (*SignResponse, error) + func (c *Client) SignAndWait(ctx context.Context, req SignRequest, timeout time.Duration) (*SignatureResponse, error) + func (c *Client) WaitForKeygen(ctx context.Context, sessionID string, timeout time.Duration) (*KeygenResponse, error) + func (c *Client) WaitForSignature(ctx context.Context, sessionID string, timeout time.Duration) (*SignatureResponse, error) + type CoronaHandler struct + func (h *CoronaHandler) Keygen(ctx context.Context, partyID party.ID, partyIDs []party.ID, threshold int) (KeyShare, error) + func (h *CoronaHandler) Name() Protocol + func (h *CoronaHandler) Refresh(ctx context.Context, share KeyShare) (KeyShare, error) + func (h *CoronaHandler) Reshare(ctx context.Context, share KeyShare, newPartyIDs []party.ID, newThreshold int) (KeyShare, error) + func (h *CoronaHandler) Sign(ctx context.Context, share KeyShare, message []byte, signers []party.ID) (Signature, error) + func (h *CoronaHandler) SupportedCurves() []string + func (h *CoronaHandler) Verify(pubKey []byte, message []byte, signature Signature) (bool, error) + type CrossChainMPCRequest struct + KeyID string + KeyType string + MessageHash []byte + MessageType string + RequestingChain string + Type string + type ECDSASignature struct + R []byte + S []byte + V byte + type EpochBeaconAttestation struct + Epoch uint64 + PreviousRef [32]byte + Randomness [32]byte + type FHEService interface + type FROSTKeyShare struct + Config *frostconfig.Config + func (s *FROSTKeyShare) Generation() uint64 + func (s *FROSTKeyShare) PartyID() party.ID + func (s *FROSTKeyShare) Protocol() Protocol + func (s *FROSTKeyShare) PublicKey() []byte + func (s *FROSTKeyShare) Serialize() ([]byte, error) + func (s *FROSTKeyShare) Threshold() int + func (s *FROSTKeyShare) TotalParties() int + type Factory struct + func (f *Factory) New(log.Logger) (interface{}, error) + type GPUBackend struct + Kind GPUBackendKind + Path string + func Backend() *GPUBackend + func (g *GPUBackend) CeremonyApply(desc *GPUMPCVMRoundDescriptor, ceremonyOps []GPUCeremonyOp, ...) (applied uint32, err error) + func (g *GPUBackend) ContributionApply(desc *GPUMPCVMRoundDescriptor, contributionOps []GPUContributionOp, ...) (applied uint32, err error) + func (g *GPUBackend) IsAvailable() bool + func (g *GPUBackend) KeyShareApply(desc *GPUMPCVMRoundDescriptor, ceremonies []GPUCeremony, ...) (roundAdvance, finalized, failed uint32, err error) + func (g *GPUBackend) MPCTransition(desc *GPUMPCVMRoundDescriptor, ceremonies []GPUCeremony, ...) (*GPUMPCVMTransitionResult, error) + type GPUBackendKind uint8 + const GPUBackendCUDA + const GPUBackendHIP + const GPUBackendMetal + const GPUBackendNone + const GPUBackendVulkan + const GPUBackendWebGPU + func (k GPUBackendKind) String() string + type GPUCeremony struct + CeremonyID uint64 + CeremonySeed [32]byte + ContributionCount uint32 + DeadlineNs uint64 + Kind uint32 + ParticipantsBitmap uint64 + Round uint32 + StartedAtNs uint64 + Status uint32 + Subject [32]byte + Threshold uint32 + TotalParticipants uint32 + type GPUCeremonyOp struct + CeremonyID uint64 + CeremonyKind uint32 + CeremonySeed [32]byte + DeadlineNs uint64 + Kind uint32 + Subject [32]byte + Threshold uint32 + TotalParticipants uint32 + type GPUContribution struct + CeremonyID uint64 + ContributionID uint64 + HolderAddr uint64 + HolderIndex uint32 + Pad0 uint64 + Payload [384]byte + PayloadLen uint32 + Round uint32 + Status uint32 + type GPUContributionOp struct + CeremonyID uint64 + HolderAddr uint64 + HolderIndex uint32 + Pad0 uint32 + Payload [384]byte + PayloadLen uint32 + Round uint32 + type GPUKeyShare struct + CeremonyID uint64 + HolderAddr uint64 + HolderIndex uint32 + Occupied uint32 + Pad0 uint64 + Scheme uint32 + ShareData [320]byte + ShareDataLen uint32 + ShareID uint64 + type GPUMPCVMRoundDescriptor struct + CeremonyOpCount uint32 + ChainID uint64 + ClosingFlag uint32 + ContributionOpCount uint32 + Epoch uint64 + Mode uint32 + Pad0 uint32 + Pad1 uint32 + Pad2 uint64 + ParentStateRoot [32]byte + Round uint64 + TimestampNs uint64 + type GPUMPCVMState struct + ActiveCeremonyCount uint32 + CeremonyRoot [32]byte + ContributionRoot [32]byte + CurrentEpoch uint64 + FailedCeremonyCount uint32 + FinalizedCeremonyCount uint32 + KeyShareCount uint32 + KeyShareRoot [32]byte + MPCVMStateRoot [32]byte + NowNs uint64 + type GPUMPCVMTransitionResult struct + ActiveCeremonyCount uint32 + CeremonyApplyCount uint32 + CeremonyRoot [32]byte + ContributionApplyCount uint32 + ContributionRoot [32]byte + Epoch uint64 + FailedThisRound uint32 + FinalizedThisRound uint32 + KeyShareCount uint32 + KeyShareRoot [32]byte + MPCVMStateRoot [32]byte + NowNs uint64 + RoundAdvanceCount uint32 + Status uint32 + type Genesis struct + Timestamp int64 + type GetChainPermissionsParams struct + ChainID string + type GetKeyParams struct + KeyID string + type GetKeygenStatusParams struct + SessionID string + type GetProtocolInfoParams struct + Protocol string + type GetQuotaParams struct + ChainID string + type GetSessionsParams struct + ChainID string + Limit int + Status string + type GetSignatureParams struct + SessionID string + type KeyInfo struct + Address string + CreatedAt int64 + Generation uint64 + KeyID string + LastUsedAt int64 + PartyIDs []string + Protocol string + PublicKey string + SignCount uint64 + Status string + Threshold int + TotalParties int + type KeyShare interface + Generation func() uint64 + PartyID func() party.ID + Protocol func() Protocol + PublicKey func() []byte + Serialize func() ([]byte, error) + Threshold func() int + TotalParties func() int + type KeygenParams struct + KeyID string + Protocol string + RequestedBy string + Threshold int + TotalParties int + type KeygenRequest struct + KeyID string + Protocol string + Threshold int + TotalParties int + type KeygenResponse struct + KeyID string + Protocol string + SessionID string + StartedAt int64 + Status string + Threshold int + TotalParties int + type KeygenResult struct + KeyID string + Protocol string + SessionID string + StartedAt int64 + Status string + Threshold int + TotalParties int + type KeygenSession struct + CompletedAt time.Time + Error string + KeyID string + KeyType string + PartyIDs []party.ID + ProtocolName Protocol + RequestedBy string + SessionID string + StartedAt time.Time + Status string + Threshold int + TotalParties int + type LSSHandler struct + func (h *LSSHandler) Keygen(ctx context.Context, partyID party.ID, partyIDs []party.ID, threshold int) (KeyShare, error) + func (h *LSSHandler) Name() Protocol + func (h *LSSHandler) Refresh(ctx context.Context, share KeyShare) (KeyShare, error) + func (h *LSSHandler) Reshare(ctx context.Context, share KeyShare, newPartyIDs []party.ID, newThreshold int) (KeyShare, error) + func (h *LSSHandler) Sign(ctx context.Context, share KeyShare, message []byte, signers []party.ID) (Signature, error) + func (h *LSSHandler) SupportedCurves() []string + func (h *LSSHandler) Verify(pubKey []byte, message []byte, signature Signature) (bool, error) + type LSSKeyShare struct + Config *lssconfig.Config + func (s *LSSKeyShare) Generation() uint64 + func (s *LSSKeyShare) PartyID() party.ID + func (s *LSSKeyShare) Protocol() Protocol + func (s *LSSKeyShare) PublicKey() []byte + func (s *LSSKeyShare) Serialize() ([]byte, error) + func (s *LSSKeyShare) Threshold() int + func (s *LSSKeyShare) TotalParties() int + type MPCService interface + AttestEpochBeacon func(requestingChain string, epoch uint64, previousRef [32]byte) (*QuantumAttestation, error) + AttestOracleCommit func(requestingChain string, requestID [32]byte, kind uint8, commitRoot [32]byte, ...) (*QuantumAttestation, error) + AttestSessionComplete func(requestingChain string, sessionID [32]byte, ...) (*QuantumAttestation, error) + GetSignature func(sessionID string) (*SigningSession, error) + RequestSignature func(requestingChain, keyID string, messageHash []byte, messageType string) (*SigningSession, error) + VerifyAttestation func(attestation *QuantumAttestation) error + type ManagedKey struct + Address []byte + Config *lssconfig.Config + CreatedAt time.Time + Generation uint64 + KeyID string + KeyType string + LastUsedAt time.Time + PartyIDs []party.ID + PublicKey []byte + SignCount uint64 + Status string + Threshold int + TotalParties int + type MessageRouter interface + Receive func() <-chan *protocol.Message + Send func(msg *protocol.Message) error + type NetworkStats struct + ActiveSessions int + AverageSigningTime int64 + SignaturesByChain map[string]uint64 + SuccessRate float64 + TotalKeygens uint64 + TotalSignatures uint64 + type Operation struct + Error string + KeyID string + MessageHash []byte + Protocol string + RequestingChain string + SessionID string + Signature []byte + Success bool + Timestamp int64 + Type string + type OracleCommitAttestation struct + Kind uint8 + RecordCount uint32 + RequestID [32]byte + Root [32]byte + type PartyInfo struct + Active bool + IsLocal bool + NodeID string + PartyID string + type Protocol string + const ProtocolBLS + const ProtocolCGGMP21 + const ProtocolCorona + const ProtocolEDDSA + const ProtocolFrost + const ProtocolLSS + type ProtocolConfig struct + Curve string + Options ProtocolOptions + Protocol Protocol + Threshold int + TotalParties int + type ProtocolExecutor struct + func NewProtocolExecutor(workerPool *pool.Pool, logger log.Logger) *ProtocolExecutor + func (pe *ProtocolExecutor) AcceptMessage(sessionID string, msg *protocol.Message) error + func (pe *ProtocolExecutor) CMPKeygenStartFunc(selfID party.ID, participants []party.ID, threshold int) protocol.StartFunc + func (pe *ProtocolExecutor) CMPRefreshStartFunc(config *cmpconfig.Config) protocol.StartFunc + func (pe *ProtocolExecutor) CMPSignStartFunc(config *cmpconfig.Config, signers []party.ID, messageHash []byte) protocol.StartFunc + func (pe *ProtocolExecutor) CreateHandler(ctx context.Context, sessionID string, startFunc protocol.StartFunc) (*protocol.Handler, error) + func (pe *ProtocolExecutor) FROSTKeygenStartFunc(selfID party.ID, participants []party.ID, threshold int) protocol.StartFunc + func (pe *ProtocolExecutor) FROSTKeygenTaprootStartFunc(selfID party.ID, participants []party.ID, threshold int) protocol.StartFunc + func (pe *ProtocolExecutor) FROSTRefreshStartFunc(config *frostconfig.Config, participants []party.ID) protocol.StartFunc + func (pe *ProtocolExecutor) FROSTSignStartFunc(config *frostconfig.Config, signers []party.ID, messageHash []byte) protocol.StartFunc + func (pe *ProtocolExecutor) GetHandler(sessionID string) (*protocol.Handler, bool) + func (pe *ProtocolExecutor) LSSKeygenStartFunc(selfID party.ID, participants []party.ID, threshold int) protocol.StartFunc + func (pe *ProtocolExecutor) LSSRefreshStartFunc(config *lssconfig.Config) protocol.StartFunc + func (pe *ProtocolExecutor) LSSReshareStartFunc(config *lssconfig.Config, newParticipants []party.ID, newThreshold int) protocol.StartFunc + func (pe *ProtocolExecutor) LSSSignStartFunc(config *lssconfig.Config, signers []party.ID, messageHash []byte) protocol.StartFunc + func (pe *ProtocolExecutor) RemoveHandler(sessionID string) + func (pe *ProtocolExecutor) RunCMPKeygen(ctx context.Context, sessionID string, selfID party.ID, ...) (*cmpconfig.Config, error) + func (pe *ProtocolExecutor) RunCMPRefresh(ctx context.Context, sessionID string, config *cmpconfig.Config, ...) (*cmpconfig.Config, error) + func (pe *ProtocolExecutor) RunCMPSign(ctx context.Context, sessionID string, config *cmpconfig.Config, ...) (*ECDSASignature, error) + func (pe *ProtocolExecutor) RunFROSTKeygen(ctx context.Context, sessionID string, selfID party.ID, ...) (*frostconfig.Config, error) + func (pe *ProtocolExecutor) RunLSSKeygen(ctx context.Context, sessionID string, selfID party.ID, ...) (*lssconfig.Config, error) + func (pe *ProtocolExecutor) RunLSSSign(ctx context.Context, sessionID string, config *lssconfig.Config, ...) (*ECDSASignature, error) + type ProtocolHandler interface + Keygen func(ctx context.Context, partyID party.ID, partyIDs []party.ID, threshold int) (KeyShare, error) + Name func() Protocol + Refresh func(ctx context.Context, share KeyShare) (KeyShare, error) + Reshare func(ctx context.Context, share KeyShare, newPartyIDs []party.ID, newThreshold int) (KeyShare, error) + Sign func(ctx context.Context, share KeyShare, message []byte, signers []party.ID) (Signature, error) + SupportedCurves func() []string + Verify func(pubKey []byte, message []byte, signature Signature) (bool, error) + type ProtocolInfo struct + Description string + IsPostQuantum bool + KeySize int + Name string + SignatureSize int + SupportedCurves []string + SupportsRefresh bool + SupportsReshare bool + func GetProtocolInfo() []ProtocolInfo + type ProtocolOptions struct + BLSScheme string + CMPPrecompute bool + CoronaSecurityLevel int + LSSGeneration uint64 + RetryOnFailure bool + TimeoutSeconds int + type ProtocolRegistry struct + func NewProtocolRegistry(workerPool *pool.Pool) *ProtocolRegistry + func (r *ProtocolRegistry) Available() []Protocol + func (r *ProtocolRegistry) Get(protocol Protocol) (ProtocolHandler, error) + func (r *ProtocolRegistry) Register(handler ProtocolHandler) + type QuantumAttestation struct + AttestationID [32]byte + CommitmentRoot [32]byte + Domain AttestationDomain + Epoch uint64 + KeyID string + Signature *ecdsaSignature + SignerCount int + SigningParties []party.ID + SubjectID [32]byte + Threshold int + Timestamp time.Time + type QuotaInfo struct + ChainID string + DailyLimit uint64 + Remaining uint64 + ResetTime int64 + UsedToday uint64 + type RPCError struct + Code int + Data interface{} + Message string + func (e *RPCError) Error() string + type RPCRequest struct + ID interface{} + JSONRPC string + Method string + Params json.RawMessage + type RPCResponse struct + Error *RPCError + ID interface{} + JSONRPC string + Result interface{} + type RefreshParams struct + KeyID string + RequestedBy string + type ReshareParams struct + KeyID string + NewPartyIDs []string + NewThreshold int + RequestedBy string + type SchnorrSignature struct + R []byte + Z []byte + type SessionCompleteAttestation struct + OracleRoot [32]byte + OutputHash [32]byte + ReceiptsRoot [32]byte + SessionID [32]byte + StepCount uint32 + type SessionInfo struct + CompletedAt int64 + CreatedAt int64 + Error string + ExpiresAt int64 + KeyID string + RequestingChain string + SessionID string + Status string + Type string + type SignParams struct + KeyID string + MessageHash string + MessageType string + RequestingChain string + type SignRequest struct + KeyID string + MessageHash []byte + MessageType string + type SignResponse struct + CreatedAt int64 + ExpiresAt int64 + KeyID string + SessionID string + Status string + type SignResult struct + CreatedAt int64 + ExpiresAt int64 + KeyID string + RequestingChain string + SessionID string + Status string + type Signature interface + Bytes func() []byte + Protocol func() Protocol + R func() *big.Int + S func() *big.Int + V func() byte + type SignatureResponse struct + CompletedAt int64 + Error string + R string + S string + SessionID string + Signature string + SignerParties []string + Status string + V int + type SignatureResult struct + CompletedAt int64 + Error string + R string + S string + SessionID string + Signature string + SignerParties []string + Status string + V int + type SigningSession struct + CompletedAt time.Time + CreatedAt time.Time + Error string + ExpiresAt time.Time + KeyID string + MessageHash []byte + MessageType string + ProtocolName Protocol + RequestingChain string + SessionID string + Signature *ecdsaSignature + SignerParties []party.ID + Status string + type ThresholdConfig struct + AuthorizedChains map[string]*ChainPermissions + DailySigningQuota map[string]uint64 + KeyRotationPeriod time.Duration + MaxActiveSessions int + MaxKeyAge time.Duration + MaxSessionsPerChain int + SessionTimeout time.Duration + Threshold int + TotalParties int + type ThresholdInfo struct + ActiveKeyID string + ActiveSessions int + AuthorizedChains []string + ChainID string + MPCReady bool + NodeID string + SupportedProtocols []string + Threshold int + TotalKeys int + TotalParties int + Version string + type ThresholdService interface + GetAddress func(keyID string) ([]byte, error) + GetPublicKey func(keyID string) ([]byte, error) + InitializeMPC func(partyIDs []party.ID) error + RefreshKey func(keyID, requestedBy string) (*KeygenSession, error) + ReshareKey func(keyID string, newPartyIDs []party.ID, requestedBy string) (*KeygenSession, error) + StartKeygen func(keyID, keyType, requestedBy string) (*KeygenSession, error) + StartKeygenWithProtocol func(keyID, protocol, requestedBy string, threshold, totalParties int) (*KeygenSession, error) + type VM struct + func (vm *VM) AttestBridgeTransfer(requestingChain string, keyID string, bt BridgeTransfer) (*BridgeTransferAttestation, error) + func (vm *VM) AttestEpochBeacon(requestingChain string, epoch uint64, previousRef [32]byte) (*QuantumAttestation, error) + func (vm *VM) AttestOracleCommit(requestingChain string, requestID [32]byte, kind uint8, commitRoot [32]byte, ...) (*QuantumAttestation, error) + func (vm *VM) AttestSessionComplete(requestingChain string, sessionID [32]byte, outputHash [32]byte, ...) (*QuantumAttestation, error) + func (vm *VM) BuildBlock(ctx context.Context) (chain.Block, error) + func (vm *VM) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *chain.VersionInfo) error + func (vm *VM) CreateHandlers(ctx context.Context) (map[string]http.Handler, error) + func (vm *VM) CreateStaticHandlers(ctx context.Context) (map[string]http.Handler, error) + func (vm *VM) CrossChainRequest(ctx context.Context, chainID ids.ID, requestID uint32, deadline time.Time, ...) error + func (vm *VM) CrossChainRequestFailed(ctx context.Context, chainID ids.ID, requestID uint32, appErr *warp.Error) error + func (vm *VM) CrossChainResponse(ctx context.Context, chainID ids.ID, requestID uint32, response []byte) error + func (vm *VM) Disconnected(ctx context.Context, nodeID ids.NodeID) error + func (vm *VM) FeePolicy() fee.Policy + func (vm *VM) GetAddress(keyID string) ([]byte, error) + func (vm *VM) GetBlock(ctx context.Context, id ids.ID) (chain.Block, error) + func (vm *VM) GetBlockIDAtHeight(ctx context.Context, height uint64) (ids.ID, error) + func (vm *VM) GetPublicKey(keyID string) ([]byte, error) + func (vm *VM) GetSignature(sessionID string) (*SigningSession, error) + func (vm *VM) Gossip(ctx context.Context, nodeID ids.NodeID, msg []byte) error + func (vm *VM) HealthCheck(ctx context.Context) (chain.HealthResult, error) + func (vm *VM) Initialize(ctx context.Context, init vmcore.Init) error + func (vm *VM) InitializeMPC(partyIDs []party.ID) error + func (vm *VM) LastAccepted(ctx context.Context) (ids.ID, error) + func (vm *VM) NewHTTPHandler(ctx context.Context) (http.Handler, error) + func (vm *VM) ParseBlock(ctx context.Context, bytes []byte) (chain.Block, error) + func (vm *VM) RefreshKey(keyID string, requestedBy string) (*KeygenSession, error) + func (vm *VM) Request(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, ...) error + func (vm *VM) RequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32, appErr *warp.Error) error + func (vm *VM) RequestSignature(requestingChain string, keyID string, messageHash []byte, messageType string) (*SigningSession, error) + func (vm *VM) ReshareKey(keyID string, newPartyIDs []party.ID, requestedBy string) (*KeygenSession, error) + func (vm *VM) Response(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error + func (vm *VM) SetPreference(ctx context.Context, id ids.ID) error + func (vm *VM) SetState(ctx context.Context, state uint32) error + func (vm *VM) Shutdown(ctx context.Context) error + func (vm *VM) StartKeygen(keyID, keyType, requestedBy string) (*KeygenSession, error) + func (vm *VM) StartKeygenWithProtocol(keyID, protocol, requestedBy string, threshold, totalParties int) (*KeygenSession, error) + func (vm *VM) VerifyAttestation(attestation *QuantumAttestation) error + func (vm *VM) Version(ctx context.Context) (string, error) + func (vm *VM) WaitForEvent(ctx context.Context) (vmcore.Message, error)