PressKey identity
PressKey is the browser-native identity and signing surface for PressChain. It is designed so an application can request an account, sign or submit authorized actions and respond to session changes without receiving the user private key. Current extension implementation is Manifest V3 and exposes a provider atwindow.presschain.
window.ethereum. PressChain applications should prefer the explicit window.presschain handle so there is no ambiguity about which signer the application intends to use.
Request model
The injected provider exposes:Live provider events
PressKey emits live session, lock and network events and provides EIP-style aliases where useful.accountsChanged. A network change can result in chainChanged. Lock state is available through lockChanged.
Do not cache an account forever after the first connection. The signer state is live application state.
Non-custodial application boundary
A website should never ask the user to paste a PressKey private key or recovery phrase. The application prepares the intent and requests authorization through the provider. This boundary applies to publishing, evidence, role activation, voting and other user actions. A backend can validate metadata or estimate a transaction, but it should not become the user signer.Session behavior
Current extension source keeps unlocked signing material in memory for a bounded session and clears legacy private key fields from extension storage. Applications should still assume a session can lock at any point. That means a multi-step publish experience should separate preparation from authorization:- validate content and metadata
- create or upload durable artifacts
- compute hashes
- build transaction calldata
- re-check account and chain
- request user authorization
- track the transaction to inclusion
- index and display the resulting Capsule state