{"id":17511706,"url":"https://github.com/layr-labs/cerberus-api","last_synced_at":"2025-03-25T12:32:42.982Z","repository":{"id":258445215,"uuid":"869242201","full_name":"Layr-Labs/cerberus-api","owner":"Layr-Labs","description":"API Spec for remote signer","archived":false,"fork":false,"pushed_at":"2025-03-13T00:58:13.000Z","size":49,"stargazers_count":3,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-17T05:37:05.638Z","etag":null,"topics":["bn254"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Layr-Labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-08T00:59:28.000Z","updated_at":"2025-02-21T07:04:26.000Z","dependencies_parsed_at":"2024-11-12T17:24:41.955Z","dependency_job_id":"9fb42830-6a04-4d4d-a288-1d1aeed7ca41","html_url":"https://github.com/Layr-Labs/cerberus-api","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"d52f5ddc5559aafeda2dc0935b39b8c95c7928cf"},"previous_names":["layr-labs/cerberus-api"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Fcerberus-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Fcerberus-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Fcerberus-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Fcerberus-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Layr-Labs","download_url":"https://codeload.github.com/Layr-Labs/cerberus-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245462852,"owners_count":20619572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bn254"],"created_at":"2024-10-20T05:08:26.747Z","updated_at":"2025-03-25T12:32:42.961Z","avatar_url":"https://github.com/Layr-Labs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cerberus-api\nThis is the API spec of remote signer. \nThe spec currently only support BLS on bn254 signing. \n\n## Disclaimer\n🚧 Cerberus-api is under active development and has not been audited.\nCerberus-api is rapidly being upgraded, features may be added, removed or otherwise improved or modified and interfaces will have breaking changes.\nCerberus-api should be used only for testing purposes and not in production. Cerberus-api is provided \"as is\" and Eigen Labs, Inc. does not guarantee its functionality or provide support for its use in production. 🚧\n\n## Supported Bindings\n### Go\nThe go bindings resides in [pkg/api/vi](pkg/api/v1) directory.\n\n### Rust\nThe rust bindings resides in [src](src) directory.\n\n## Signing Quirks\nIf you are implementing a version of this, please make sure to check [this code](https://github.com/Layr-Labs/cerberus/blob/6ce641c6323c412b2b9383169ee70fef22c13c60/internal/crypto/utils.go#L30-L36) \nfor implementation of sign and verify. If you use any other implementation, the signatures will not be compatible with EigenLayer contracts.\nEventually we will support more `HashToCurve` algorithms.\n\n## Implementation\n* Go - https://github.com/Layr-Labs/cerberus\n  \n## Usage\n### Signing Client\n```go\npackage main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"log\"\n    \"time\"\n\n    \"github.com/Layr-Labs/cerberus-api/pkg/api/v1\"\n\t\n    \"google.golang.org/grpc\"\n\t\"google.golang.org/grpc/credentials/insecure\"\n)\n\nconst SIGNER_API_KEY = \"\u003cAPI-KEY\u003e\"\n\nfunc main() {\n\tconn, err := grpc.NewClient(\n\t\t\"localhost:50051\", \n\t\tgrpc.WithTransportCredentials(insecure.NewCredentials()),\n\t)\n    if err != nil {\n        log.Fatalf(\"did not connect: %v\", err)\n    }\n    defer conn.Close()\n\t\n    c := v1.NewSignerClient(conn)\n\n    ctx, cancel := context.WithTimeout(context.Background(), time.Second)\n    defer cancel()\n\n    req := \u0026v1.SignGenericRequest{\n        PublicKeyG1: \"0xabcd\",\n        Password:  \"p@$$w0rd\",\n        Data:      []byte{0x01, 0x02, 0x03},\n    }\n\n    // Pass the API key to the signer client\n    ctx = metadata.AppendToOutgoingContext(ctx, \"authorization\", SIGNER_API_KEY)\n    resp, err := c.SignGeneric(ctx, req)\n    if err != nil {\n        log.Fatalf(\"could not sign: %v\", err)\n    }\n    fmt.Printf(\"Signature: %v\\n\", resp.Signature)\n}\n```\n\n## Security Bugs\nPlease report security vulnerabilities to security@eigenlabs.org. Do NOT report security bugs via Github Issues.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Fcerberus-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flayr-labs%2Fcerberus-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Fcerberus-api/lists"}