MCP server keys
gc_{tier}_{48 hex}. Supply via MCP_API_KEY (canonical), or the accepted aliases SCIENTER_MCP_API_KEY / GHOSTCOPY_API_KEY.
All tiers share a 100 calls/minute ceiling. See Rate limits.
Storage
The keystore holdsscrypt(token) plus a salt — never the token. Metadata (tier, label, creation time) is encrypted with AES-256-GCM. Comparison is timingSafeEqual over derived hashes.
List keys by fingerprint:
Enterprise wallet API keys
gcx_..., prefixed so a leaked key is recognisable in a log. Stored as a SHA-256 hash. Sent as X-API-Key.
No recovery, by design
Rotation
There is no automatic expiry or forced rotation. Rotation is:1
Issue the replacement
Both systems accept multiple valid keys, so you can overlap.
2
Deploy it
Update the environment variable or header everywhere it is consumed.
3
Revoke the old key
Remove it from the keystore. Verify traffic has moved first — nothing warns you that a key is still in use.
Operational guidance
One key per consumer
The call log records the caller’s tier and key fingerprint. Shared keys make an incident unattributable.
Never commit a key
apps/mcp-server/apikeys.local.json is local state. The gc_ and gcx_ prefixes exist so secret scanners can catch a mistake — configure yours to look for them.Scienter publishes impersonal market signals of general and regular circulation. Nothing here is investment, legal, or tax advice, or a recommendation to buy, sell, or hold any asset. Scienter is not a registered investment adviser or broker-dealer. Trading digital assets can result in the total loss of your funds — see Disclaimers for the full text.