Documentation Index
Fetch the complete documentation index at: https://docs.0xkey.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The official Go modulegithub.com/0xkey-io/sdk-go provides:
- Generated API client (go-swagger) for 0xkey activities
- API key generation and request signing (
pkg/apikey) - HPKE enclave encryption for OTP and import/export (
pkg/enclave_encrypt) - Session JWT verification (
pkg/crypto) - Local key storage (
pkg/store/local)
Prerequisites
- Go 1.21+
- A 0xkey organization (Quickstart)
- An API keypair registered to that organization (private key stays on your machine)
examples/apikey helper.
Installation
v0.1.0 on pkg.go.dev.
Configure API keys
The SDK reads keys from~/.config/0xkey/keys/ when you pass sdk.WithAPIKeyName("default").
After creating a key with the CLI, ensure the key name matches what you pass to WithAPIKeyName. Alternatively, load a key programmatically:
First request (Whoami)
examples/whoami.
Custom API host
For staging or local-gateway:examples/email_otp.
Sub-packages
| Package | Purpose |
|---|---|
pkg/apikey | P-256 / Ed25519 key generation and stamps |
pkg/enclave_encrypt | HPKE encrypt to Signer enclave (OTP, import/export) |
pkg/crypto | Session JWT and OTP token verification |
pkg/encryptionkey | Encryption key helpers |
pkg/proofs | Nitro attestation verification |
pkg/store/local | Filesystem key storage |
pkg/api/client | Low-level generated client |
sdk.New() wrapper.
Example workflows
| Example | Path | Description |
|---|---|---|
| Whoami | examples/whoami/ | Verify API key and org |
| Email OTP | examples/email_otp/ | Full backend OTP + HPKE flow |
| Delegated access | examples/delegated_access/ | Sub-org + scoped policy |
| Sign transaction | examples/signing/sign_transaction/ | Activity signing |
| Sign raw payload | examples/signing/sign_raw_payload/ | Message signing |
| Ethereum txs | examples/transaction_management/ethereum/ | EVM transaction management |
| Solana txs | examples/transaction_management/solana/ | SVM transaction management |
| go-ethereum | examples/go-ethereum/ | BindSigner integration |
| Wallet CRUD | examples/wallets/ | Create, import, export wallets |
| API key gen | examples/apikey/ | Programmatic key creation |
Error handling
API errors can be inspected as*runtime.APIError:
sdk.WithLogger(yourLogger) — see Go SDK overview.
Next steps
Delegated access
Policy-scoped backend signing
TypeScript server
Node.js equivalent of server automation
API stamps
How requests are authenticated
pkg.go.dev
Generated API reference