keygenix-mcp
# keygenix-mcp
**Keygenix MCP Server** — Non-custodial TEE key management & signing for AI agents.
[](https://opensource.org/licenses/MIT)
Private keys are generated, stored, and used exclusively inside a **Trusted Execution Environment (TEE)**. They never leave in plaintext — not to you, not to Keygenix, not to the AI.
---
## Quick Start
### 1. Get your credentials
1. Register at [keygenix.pro](https://keygenix.pro)
2. Create an organization → note `orgCode`
3. Create a wallet → note `walletCode`
4. Generate two keypairs (run once):
```bash
# Use the CLI to generate keypairs (easiest)
git clone https://github.com/wallet-io/keygenix-skill
cd keygenix-skill/cli && npm install
node client.js keygen # → copy publicKey as API Auth Key
node client.js keygen # → copy publicKey as AuthKey (separate keypair)
```
5. Register both **public keys** in the Keygenix dashboard.
### 2. Configure your AI client
#### Claude Desktop
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"keygenix": {
"command": "node",
"args": ["/path/to/node_modules/keygenix-mcp/dist/index.js"],
"env": {
"KEYGENIX_API_PRIV_KEY": "your-api-auth-private-key-hex",
"KEYGENIX_AUTH_PRIV_KEY": "your-authkey-private-key-hex",
"KEYGENIX_ORG_CODE": "your-org-code",
"KEYGENIX_WALLET_CODE": "your-wallet-code"
}
}
}
}
```
> Once published to npm, replace with `"command": "npx", "args": ["keygenix-mcp"]`
#### Cursor / Windsurf
Edit `.cursor/mcp.json` or `.windsurf/mcp.json`:
```json
{
"mcpServers": {
"keygenix": {
"command": "node",
"args": ["/path/to/node_modules/keygenix-mcp/dist/index.js"],
"env": {
"KEYGENIX_API_PRIV_KEY": "...",
"KEYGENIX_AUTH_PRIV_KEY": "...",
"KEYGENIX_ORG_CODE": "...",
"KEYGENIX_WALLET_CODE": "..."
}
}
}
}
```
#### OpenClaw
Add to your OpenClaw MCP config, or use the [keygenix OpenClaw Skill](https://clawhub.com/skills/keygenix) directly.
---
## Available Tools
| Tool | Description |
|------|-------------|
| `keygen` | Generate a new secp256k1 keypair locally (no network) |
| `list_keys` | List all keys in the wallet |
| `get_key` | Get details of a key by keyCode |
| `create_key` | Create a new key (mnemonic/private/secret) |
| `import_key` | Import existing key into TEE (ECIES encrypted) |
| `list_addresses` | List derived addresses for a key |
| `create_address` | Derive a new address for a chain |
| `sign_transaction` | Sign a blockchain transaction (EVM/SOL/SUI/etc.) |
| `sign_message` | Sign an arbitrary message |
---
## Supported Chains
EVM · Solana · Bitcoin · Litecoin · Dogecoin · Zcash · Tron · Ripple · Sui · TON · Cardano · Aptos · Cosmos · Sei
---
## Security Model
```
AI Agent
↓ calls MCP tool (no keys in prompt)
keygenix-mcp (local process)
↓ ECDSA-signed HTTPS requests
Keygenix TEE API
↓ private key never leaves enclave
Signed transaction returned
```
- **API Auth Private Key** — signs every API request. Store in env, never hardcode.
- **AuthKey Private Key** — authorizes sign/export. Signed locally; Keygenix only sees the public key.
- **Private keys** — generated inside TEE, never exposed in plaintext.
---
## Development
```bash
git clone https://github.com/wallet-io/keygenix-mcp
cd keygenix-mcp
npm install
npm run build
npm start
```
---
## Distribution
| Channel | Command |
|---------|---------|
| GitHub | `npm install github:wallet-io/keygenix-mcp` |
| npm _(coming soon)_ | `npx keygenix-mcp` |
| OpenClaw | `clawhub install keygenix` |
| Smithery | [smithery.ai/server/keygenix](https://smithery.ai) |
---
## Links
- Website: [keygenix.pro](https://keygenix.pro)
- API Docs: [keygenix.pro/docs.html](https://keygenix.pro/docs.html)
- Skill + CLI: [wallet-io/keygenix-skill](https://github.com/wallet-io/keygenix-skill)
- Issues: [github.com/wallet-io/keygenix-mcp/issues](https://github.com/wallet-io/keygenix-mcp/issues)
TDQS
Scored across 12 tools
Most tools target a distinct action (import/export/sign/list/get/update), but a few boundaries require careful reading: keygen (local keypair generation) vs create_key (TEE-stored key), and export_key vs get_public_key both retrieve key material. The descriptions do clarify the distinction (local vs TEE, encrypted export vs derived public key), so misselection is unlikely but possible.
Nearly all tools follow a clean verb_noun snake_case pattern (export_key, import_key, create_address, sign_transaction, list_keys, get_key, update_key, create_key). The lone outlier is 'keygen', which drops the verb_noun convention and slightly breaks the pattern.
12 tools is well-scoped for a key management and signing server. Each tool covers a distinct lifecycle stage (generate, import, export, derive addresses, sign, CRUD) with no redundant filler.
Key lifecycle covers create, import, export, list, get, and update, plus address derivation and signing, but there is no delete_key or address removal operation, leaving a notable gap. Agents can create and manage keys but cannot clean up or revoke them.