The SDK is under active development and has no published releases. Report vulnerabilities
against the current main branch and include the exact commit you tested. A supported
release policy will be defined when releases are published.
Use Report a vulnerability on the repository's Security advisories page, or email chitpole@proton.me.
Do not put exploit details in public issues, pull requests or discussions. Ordinary bugs without a security impact can use the public issue tracker.
Include:
- The affected module, commit or version, and the runtime it ran on.
- The expected behaviour, observed behaviour and potential impact.
- Reproduction steps or a minimal proof of concept, preferably against a disposable localnet.
- Relevant logs with credentials, personal data and signing material removed.
Never send private keys, seed phrases or live wallet credentials. Test only on systems you own or have permission to test.
The SDK holds no key: signing goes through the Signer interface, and MemorySigner
exists for tests and development. What it does trust, and checks as far as it can:
- The network registry, read from
ark-registryat a git ref,mainby default. Every member the SDK reads is checked by name, the prefix and coin type are held to the SDK's own, and an endpoint is accepted over https, or http on the loopback. A pinned ref makes what is read immutable; the endpoints themselves are the registry's to keep. - The node, over its gRPC gateway. Its answers are JSON parsed through the generated
types with every
Anyresolved against the type registry; a type the registry does not know decodes as unknown, never under another label.verifyNetworkrefuses a node on another chain and reports its binary against the versions the registry lists; it cannot tell a hostile node from a truthful one, and nothing in the SDK verifies consensus. - The chain's fixtures, copied from
arkat the tag inARK_VERSIONand reproduced byte for byte by the tests: the contract the codec, builder, and decoder are held to. - A wallet behind
fromOfflineSigner: the builder refuses a sign document the wallet altered, and the signup proof checks the wallet's key against the address it signed for.
The chain's own trust boundaries are in ark's threat model.
Reports may concern the codec and sign bytes, transaction construction and fee pricing, the signup protocol's proof, the query client, the registry loader, or the repository's build and release tooling. Include any relevant upstream dependency and version when the issue involves third-party code.
Maintainers will assess the report and coordinate fixes and disclosure through the private channel. Keep follow-up details there while a vulnerability remains unresolved.