@@ -93,7 +93,9 @@ Reference file: [`mcp-config.example.json`](./mcp-config.example.json)
9393 "command" : " bun" ,
9494 "args" : [" run" , " /ABSOLUTE/PATH/TO/src/mcp/server.ts" ],
9595 "env" : {
96- "AELF_PRIVATE_KEY" : " your_private_key_here"
96+ "AELF_PRIVATE_KEY" : " optional_env_fallback_private_key" ,
97+ "PORTKEY_WALLET_PASSWORD" : " optional_wallet_password" ,
98+ "PORTKEY_CA_KEYSTORE_PASSWORD" : " optional_keystore_password"
9799 }
98100 }
99101 }
@@ -108,8 +110,13 @@ Copy and edit:
108110cp .env.example .env
109111```
110112
111- - ` AELF_PRIVATE_KEY ` : required for write operations
112- - ` AELF_PRIVATE_KEY ` is read from environment only in MCP mode (no private key tool input)
113+ - ` AELF_PRIVATE_KEY ` : optional env fallback for write operations (highest env priority)
114+ - ` PORTKEY_PRIVATE_KEY ` : optional secondary env fallback for shared-skill compatibility
115+ - Write tools (` aelf_send_contract_transaction ` , ` aelf_estimate_transaction_fee ` ) resolve signer as ` explicit -> context -> env `
116+ - ` PORTKEY_WALLET_PASSWORD ` : optional password cache for EOA wallet context
117+ - ` PORTKEY_CA_KEYSTORE_PASSWORD ` : optional password cache for CA keystore context
118+ - ` PORTKEY_SKILL_WALLET_CONTEXT_PATH ` : optional override for active context path (` ~/.portkey/skill-wallet/context.v1.json ` )
119+ - ` signerMode=daemon ` is reserved and currently returns ` SIGNER_DAEMON_NOT_IMPLEMENTED `
113120- ` AELF_NODE_AELF_RPC_URL ` : optional override for AELF node
114121- ` AELF_NODE_TDVV_RPC_URL ` : optional override for tDVV node
115122- ` AELF_NODE_REGISTRY_PATH ` : optional custom registry path
@@ -153,6 +160,7 @@ bun run test:coverage:ci
153160## Security
154161
155162- Never put ` AELF_PRIVATE_KEY ` in prompts or channel outputs.
163+ - Active wallet context must not contain plaintext private keys.
156164- Use environment variables for all secrets.
157165
158166## License
0 commit comments