Thank you for contributing to the Open Wallet Standard (OWS) reference implementation.
- Fork and clone open-wallet.
- Use Node.js 22+ (
nvm use). npm installfrom the repo root.npm run buildandnpm test.
| Path | Language | Build | Published |
|---|---|---|---|
packages/ows-signer |
Plain JavaScript | None | @1shotapi/ows-signer |
packages/ows-types |
TypeScript | tsc |
@1shotapi/ows-types |
packages/ows-signer-utils |
TypeScript | tsc |
@1shotapi/ows-signer-utils |
packages/ows-wallet-utils |
TypeScript | tsc |
@1shotapi/ows-wallet-utils |
packages/ows-oid4 |
TypeScript | tsc |
@1shotapi/ows-oid4 (optional credentials) |
packages/ows-provider |
TypeScript | tsc |
@1shotapi/ows-provider |
packages/ows-onchain |
TypeScript + Solidity | Hardhat | @1shotapi/ows-onchain |
examples/* |
TypeScript | Vite (dev) | No |
Critical rule: @1shotapi/ows-signer must never acquire a build step or npm dependencies. Source is published verbatim and deployed on-chain as-is.
Postmate: Use the external postmate package — do not vendor it in this repo.
npm run dev -w @1shotapi/ows-example-host
npm run build -w @1shotapi/ows-signer-utilsInclude a changeset for user-facing changes to publishable packages: npm run changeset.
1ShotPay validates OWS patterns in a private repository:
- Signing Layer logic →
packages/ows-signer(plain JS, curve-based signing only). - Chain marshalling →
packages/ows-signer-utils. - General-purpose Branding Layer patterns →
examples/general-walletviaows-wallet-utils. - Host Layer EIP-1193 →
packages/ows-provider.
Do not commit proprietary assets, API keys, or 1ShotPay-specific endpoints.
- Keep PRs focused on one OWS package or concern.
- Ensure
npm run buildandnpm testpass. - Do not add dependencies to
ows-signer.
Report security issues to info@1shotapi.com rather than opening a public issue.