CrypDefi is now Fortkey. read the announcement

    FortkeyLink

    Trade anywhere. Keys stay home.

    FortkeyLink presents your enclave wallets as a hardware wallet. Traders connect their usual browser extensions and trade any DEX, every order policy-checked.

    FortkeyLink ready

    Market Making EVM0x9a3f…b21c
    OTC Settlement0x4e71…8d05
    HFT Strategy 020xc8b2…1f7a

    Emulating a hardware device over USB

    Policy-approved · Enclave-signed

    How FortkeyLink works

    Nothing new to learn. FortkeyLink works in any wallet that supports a hardware device, on any DEX your traders already use.

    How FortkeyLink works

    FortkeyLink ready

    Market Making EVM0x9a3f…b21c
    OTC Settlement0x4e71…8d05
    HFT Strategy 020xc8b2…1f7a

    Emulating a hardware device over USB

    Every order checked before it signs.

    The same policy engine that guards the algorithmic flow runs on every manual order, inside the attested enclave.

    • Same rules for manual and algorithmic
    • Signed inside the attested enclave
    • No private key ever touches the trader's machine
    Fortkey policy rules checked before a manual order signs.

    No device, no friction.

    No hardware to ship, lose, or pass around. On agent venues, approve once and trade freely.

    • Nothing physical to manage
    • Approve once on agent venues
    • Sessions visible and revocable in the console
    Fortkey sessions view with revoke controls.

    One wallet, every mode.

    HFT, API, and manual trading run on the same keys, under the same policies. Trade manually through FortkeyLink or programmatically through the Rust SDK and REST API, with nothing to reconcile between them.

    • Rust SDK and REST API for bots
    • One set of keys and policies across every mode
    • Nothing to migrate between manual and algorithmic
    use fortkey_hft_sdk::{bytes_to_hex, BotTrader, TxKind, UserId};
    
    #[tokio::main]
    async fn main() -> anyhow::Result<()> {
        // Challenge-response auth with your bot key. No static API keys.
        let pem = std::fs::read_to_string("bot-key.pem")?;
        let mut sdk = BotTrader::new(pem.trim(), UserId::new("us-mm-eu-01")?)?;
        sdk.login().await?;
    
        // Pin an enclave co-located with your venue, then open a wallet session.
        sdk.use_signing_instance("eu-central-1", None, None, None).await?;
        sdk.start_wallet_session("mm-eu-perps", "eu-central-1").await?;
    
        // Your strategy builds the order; Fortkey signs it inside the enclave.
        let order: Vec<u8> = build_order();
        let sig = sdk.sign_tx("mm-eu-perps", &order, TxKind::EvmEip712).await?;
        println!("signature: {}", bytes_to_hex(&sig.to_der()?));
    
        sdk.logout().await?;
        Ok(())
    }

    A real-world use case

    A trader connected MetaMask and nothing changed

    A discretionary trader added FortkeyLink as a hardware device in MetaMask and traded a perp venue exactly as before. Every order passed the desk's policy inside the enclave, and the keys never left.

    Hardware-device compatibility

    Works in any wallet that supports a hardware device.

    Any DEX

    Hyperliquid, Drift, or any DEX your traders use.

    Policy-checked orders

    Every manual order runs through the policy engine.

    Enclave signing

    Signatures happen inside the attested enclave.

    One-time venue approvals

    Approve once on agent venues, then trade freely.

    Console visibility

    Every session visible and revocable from the console.