{"repo":"slice-so/erc8128","free":true,"listed":false,"github":"https://github.com/slice-so/erc8128","clone":"git clone https://github.com/slice-so/erc8128.git","description":"Minimal ERC-8128 implementation for signing and verifying HTTP requests with Ethereum accounts.","language":"TypeScript","stars":22,"topics":["ethereum","fetch","http","wallet","web3","curl"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"@slicekit/erc8128 Sign and verify HTTP requests with Ethereum wallets using ERC-8128. Features - Fetch-native — Works in browsers, workers, Node.js 18+, Bun, Deno - RFC 9421 compliant — HTTP Message Signatures with Ethereum extension - Request binding — Sign URL, method, headers, and body - Replay protection — Non-replayable by default (nonce required); nonce omission is only for explicitly allowed replayable signatures Installation Quick Start Sign a request Verify a request Core API createSignerClient(signer, options?) Creates a client with a configured signer. createVerifierClient({ verifyMessage, nonceStore, defaults? }) Creates a client with verification dependencies. verifyRequest({ request, verifyMessage, nonceStore, policy?, setHeaders? }) Verifies a signed request. formatDiscoveryDocument(config) Formats the /.well-known/erc8128 discovery document for your server. invalidation endpoint is only included when at least one policy enables replayable . Route policy entries set to false are filtered out. signRequest(input, init?, signer, options?) Signs a fetch Request and returns a new Request with signature headers. signedFetch(input, init?, signer, options?) Signs and sends a request in one call. Options Sign options Option Type Default Description -------- ------ --------- ------------- binding \"request-bound\" \\ \"class-bound\" \"request-bound\" Components to sign replay \"non-replayable\" \\ \"replayable\" \"non-replayable\" Non-replayable includes nonce; replayable omits nonce ","default_branch":null,"files":null,"tree":[],"storefront":"/r/slice-so","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/slice-so/erc8128/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}