Keycard is built in the open by a small team, and outside contributions have shaped it from the start — community members maintain SDKs in four languages.
Whatever your background, there is a useful way in. Roughly in order of effort:
The team is active on Discord — integration questions, feature discussions and security topics all happen there. It's the fastest way to get unblocked and the best place to sound out an idea before building it.
Found a bug, a gap in the docs, or unexpected behavior? Open an issue on the relevant repository — status-keycard for the applet, keycard-shell for the Shell, or any of the other repos.
The easiest high-impact contribution. Keycard Shell's clear signing — showing users exactly what a transaction does instead of a raw hash — relies on an open database of contract ABIs and token metadata: eth-abi-repo. Every ABI added means one more contract whose transactions are displayed in a human-readable form, for every Shell owner. If a dApp you use shows up as raw calldata, add its contracts.
Adding Keycard support to a wallet or app is well-trodden ground: start from the Keycard SDK documentation or one of the other SDKs, and ask on Discord if you hit a wall. If your language has no SDK yet, the Keycard API is a complete specification of the card protocol — the Python, TypeScript and Nim SDKs were all built from it by community members.
Built something? Add it to keycard-ecosystem-projects so others can find it.
Shell's schematics, BOM and 3D files are published under MIT. You can build your own Keycard on a blank JavaCard, build your own Shell, design a custom enclosure, or fork the firmware entirely. If you make something interesting, the team wants to see it — share it on Discord.