Skip to content

Layr-Labs/cerberus-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cerberus-api

This is the API spec of remote signer. The spec currently only support BLS on bn254 signing.

Supported Bindings

Go

The go bindings resides in pkg/api/vi directory.

Signing Quirks

If you are implementing a version of this, please make sure to check this code for implementation of sign and verify. If you use any other implementation, the signatures will not be compatible with EigenLayer contracts. Eventually we will support more HashToCurve algorithms.

Implementation

Usage

Signing Client

package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/Layr-Labs/cerberus-api/pkg/api/v1"
	
    "google.golang.org/grpc"
	"google.golang.org/grpc/credentials/insecure"
)

func main() {
	conn, err := grpc.NewClient(
		"localhost:50051", 
		grpc.WithTransportCredentials(insecure.NewCredentials()),
	)
    if err != nil {
        log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
	
    c := v1.NewSignerClient(conn)

    ctx, cancel := context.WithTimeout(context.Background(), time.Second)
    defer cancel()

    req := &v1.SignGenericRequest{
		PublicKey: "0xabcd",
		Password:  "p@$$w0rd",
		Data:      []byte{0x01, 0x02, 0x03},
    }
    resp, err := c.SignGeneric(ctx, req)
    if err != nil {
        log.Fatalf("could not sign: %v", err)
    }
    fmt.Printf("Signature: %v\n", resp.Signature)
}

Security Bugs

Please report security vulnerabilities to security@eigenlabs.org. Do NOT report security bugs via Github Issues.

About

API Spec for remote signer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published