Skip to content

This repository outlines standard remote signing application programming interface (APIs) for communication between remote signers and Ethereum validator clients. Remote signing service allows validator clients to offload signing of validation duties (e.g Attestations, BeaconBlocks) by managing security, slashing protection, and key management.

License

Notifications You must be signed in to change notification settings

ethereum/remote-signing-api

Repository files navigation

Ethereum remote signing APIs

Warning: Super fresh repo. Expect rapid iteration and breaking changes

API browser: https://ethereum.github.io/remote-signing-api/

Outline

This repository outlines standard remote signing application programming interface (APIs) for communication between remote signers and Ethereum validator clients.

Remote signing service allows validator clients to offload signing of validation duties (e.g Attestations, BeaconBlocks) by managing security, slashing protection, and key management.

The API is a REST interface, accessed via HTTP/HTTPS. This API should not be exposed directly to the public Internet and appropriate firewall rules should be in place to restrict access only from validator clients. At the moment, only JSON is supported as return type.

The goal of this specification is to promote interoperability between various validator client implementations and remote signing services.

Client support

Validator Clients Status
Prysm Supported v1.0.0
Teku Supported v1.0.0
Lighthouse
Nimbus
Lodestar Supported v1.0.0
Remote Signing Service Status
Web3Signer Supported v1.0.0

Running API Browser Locally

To render the spec in a browser you will need an HTTP server to serve the index.html file. Rendering occurs client-side in JavaScript, so no changes are required to the HTML file between edits.

Python
python2 -m SimpleHTTPServer 8080

The API spec will render on http://localhost:8080.

NodeJs
npm install simplehttpserver -g

# OR

yarn global add simplehttpserver

simplehttpserver

The API spec will render on http://localhost:8000.

Contributing

The API spec is linted for issues before PRs are merged.

To run the linter locally, install spectral:

npm install -g @stoplight/spectral

# OR

yarn global add @stoplight/spectral

and run with

spectral lint remote-signing-oapi.yaml

Releasing

  1. Create and push a tag
  • Make sure info.version in remote-signing-oapi.yaml file is updated before tagging.
  • CD will create github release and upload bundled spec file
  1. Add release entrypoint in index.html

In SwaggerUIBundle configuration (inside index.html file), add another entry in "urls" field (SwaggerUI will load first item as default). Entries should be in the following format (replace <tag> with the real tag name from step 1):

{url: "https://github.com/ethereum/remote-signing-api/releases/download/<tag>/remote-signing-oapi.yaml", name: "<tag>"},
  ```

About

This repository outlines standard remote signing application programming interface (APIs) for communication between remote signers and Ethereum validator clients. Remote signing service allows validator clients to offload signing of validation duties (e.g Attestations, BeaconBlocks) by managing security, slashing protection, and key management.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages