https://github.com/fireblocks/fireblocks-staking-eth-link
https://github.com/fireblocks/fireblocks-staking-eth-link
Last synced: 2 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fireblocks/fireblocks-staking-eth-link
- Owner: fireblocks
- License: mit
- Created: 2026-02-26T09:40:02.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-05-01T10:33:26.000Z (3 months ago)
- Last Synced: 2026-05-01T12:23:25.767Z (3 months ago)
- Language: TypeScript
- Size: 666 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Eth-Link
Reference implementation and example code for the Eth-Link protocol — a provider-agnostic API for creating compounding ETH validators (post-Pectra).
> **Note:** This is not an official SDK. The packages and examples in this repo are provided as reference implementations to help providers and clients integrate with the Eth-Link protocol.
## Packages
| Package | Description |
|---------|-------------|
| [`@fireblocks/eth-staking-eth-link-spec`](packages/spec/) | OpenAPI 3.0 specification (source of truth) |
| [`@fireblocks/eth-staking-eth-link-types`](packages/types/) | Zod schemas + TypeScript types |
| [`@fireblocks/eth-staking-eth-link-api-validator`](packages/api-validator/) | CLI tool for testing provider endpoints + HMAC utilities |
| [`@fireblocks/eth-staking-eth-link-server`](packages/server/) | Express middleware for providers |
## Validate a Provider
```bash
ETH_LINK_BASE_URL=http://localhost:3000 ETH_LINK_API_KEY=your-key yarn validate
```
## OpenAPI Spec
The source-of-truth specification lives in [`packages/spec/`](packages/spec/). Reference it directly in your OpenAPI tooling:
```yaml
$ref: "node_modules/@fireblocks/eth-staking-eth-link-spec/eth-link-spec.yaml"
```
## Endpoints
| Method | Path | Description |
|--------|------|-------------|
| `POST` | `/eth-link/validators/create` | Create a compounding validator, return signed deposit data |
| `POST` | `/eth-link/validators/{pubkey}/events` | Receive validator lifecycle events |
| `GET` | `/eth-link/health` | Health check (polled every ~60s) |
## Examples
- [Express Provider](examples/express-provider/) — Using `@fireblocks/eth-staking-eth-link-server` middleware
- [Standalone Provider](examples/standalone-provider/) — Using only `@fireblocks/eth-staking-eth-link-api-validator` with Node.js `http`
## Development
```bash
# Install dependencies
yarn install
# Build all packages
yarn build
# Type check
yarn typecheck
# Validate a running provider
ETH_LINK_BASE_URL=http://localhost:3000 ETH_LINK_API_KEY=dev-api-key-for-testing yarn validate
```
## License
MIT