PageSourceSearch

https://www.fortkey.io/assets/entries/pages_product_fortkeylink.a9z91Sku.js

js fortkey.io collected 2026-10-09 23:22:13 UTC 9,781 bytes, 6 lines download raw bytes

1import{c as l,j as e,i as d,a as c,o as p}from"../chunks/chunk-BpqaKSuD.js";import{L as m,S as h,a}from"../chunks/chunk-C4640EzS.js";import{J as u}from"../chunks/chunk-DrGZJMRi.js";import{F as y,a as x}from"../chunks/chunk-yS6-uIkD.js";import{F as t,L as v,a as r,U as g,c as k,b as f}from"../chunks/chunk-BjUHzIRT.js";import{C as w,s as b}from"../chunks/chunk-CHk9WBf7.js";import{S as i}from"../chunks/chunk-Dk8LwT4V.js";import{C as o}from"../chunks/chunk-CCtmLmCd.js";import{L as n}from"../chunks/chunk-D7lW6W5q.js";import{C as j}from"../chunks/chunk-DhJl_MVH.js";import{T}from"../chunks/chunk-wRNV6Sba.js";import{C as S,K as s}from"../chunks/chunk-BsosCx2A.js";import{W as E}from"../chunks/chunk-C5LSxaqF.js";import{E as F}from"../chunks/chunk-BE5CnL2f.js";/* empty css                      */import"../chunks/chunk-DxKNguCu.js";/* empty css                      */import"../chunks/chunk-Ctvo26fF.js";import"../chunks/chunk-Dn-Xb6JW.js";import"../chunks/chunk-CK6TvRit.js";import"../chunks/chunk-DEj5tWDn.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const L=l("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),N=()=>e.jsx("section",{className:"relative overflow-hidden",children:e.jsx("div",{className:"product-hero container relative mx-auto px-4 lg:px-8",children:e.jsxs("div",{className:"grid grid-cols-1 items-center gap-12 lg:grid-cols-[1.05fr_1fr] lg:gap-14",children:[e.jsxs("div",{className:"text-left",children:[e.jsx("span",{className:"inline-flex items-center rounded-full bg-[hsla(221,83%,53%,0.10)] px-3 py-1 text-[12px] font-semibold tracking-[0.06em] text-[#2563EB]",children:"FortkeyLink"}),e.jsx("h1",{className:"mt-5 max-w-2xl font-display font-semibold tracking-[-0.02em] text-[#14171C] text-3xl leading-[1.06] sm:text-4xl lg:text-[52px] lg:leading-[1.08]",children:"Trade anywhere. Keys stay home."}),e.jsx("p",{className:"type-lead mt-6 max-w-xl",children:"FortkeyLink presents your enclave wallets as a hardware wallet. Traders connect their usual browser extensions and trade any DEX, every order policy-checked."}),e.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3",children:[e.jsx(a,{to:"/sandbox",className:"btn-marketing-primary btn-marketing-primary--blue btn-interactive",children:"Try the sandbox"}),e.jsx(a,{to:"/talk",className:"btn-marketing-secondary btn-interactive",children:"Talk to engineering"})]})]}),e.jsx("div",{className:"relative",children:e.jsxs("div",{className:"fk-panel-blue-teal relative overflow-hidden p-5 sm:p-6 lg:h-[520px]",children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{background:"radial-gradient(60% 55% at 78% 30%, rgba(55,187,173,0.14), transparent 70%), radial-gradient(50% 45% at 15% 85%, rgba(37,99,235,0.10), transparent 70%)"}}),e.jsx("div",{className:"relative h-full rounded-2xl border border-[#E9E8E2] bg-white p-5 sm:p-6 shadow-[0_30px_70px_-30px_rgba(11,20,48,0.30)]",children:e.jsx(y,{})})]})})]})})}),P=()=>e.jsx("section",{className:"product-section relative",children:e.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[e.jsxs("div",{className:"max-w-3xl",children:[e.jsx("h2",{className:"font-display text-2xl sm:text-3xl lg:text-[44px] lg:leading-[1.14] font-semibold tracking-[-0.02em] text-[#14171C]",children:"How FortkeyLink works"}),e.jsx("p",{className:"type-body-lg mt-5",children:"Nothing new to learn. FortkeyLink works in any wallet that supports a hardware device, on any DEX your traders already use."})]}),e.jsx("div",{className:"mt-10",children:e.jsx(x,{})})]})}),D=()=>e.jsxs(m,{title:"FortkeyLink: manual DEX trading, policy-checked | Fortkey",description:"FortkeyLink presents your enclave wallets as a hardware wallet. Trade any DEX in MetaMask, Phantom, or any other browser extension, every order policy-checked.",children:[e.jsx(h,{path:"/product/fortkeylink",title:"FortkeyLink: manual DEX trading, policy-checked | Fortkey",description:"FortkeyLink presents your enclave wallets as a hardware wallet. Trade any DEX 
6in MetaMask, Phantom, or any other browser extension, every order policy-checked."}),e.jsx(u,{schema:{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://www.fortkey.io/"},{"@type":"ListItem",position:2,name:"Product",item:"https://www.fortkey.io/product"},{"@type":"ListItem",position:3,name:"FortkeyLink",item:"https://www.fortkey.io/product/fortkeylink"}]}}),e.jsx(N,{}),e.jsx(P,{}),e.jsx(t,{tone:"tint",reverse:!0,title:e.jsx(e.Fragment,{children:"Every order checked before it signs."}),paragraph:"The same policy engine that guards the algorithmic flow runs on every manual order, inside the attested enclave.",bullets:[{icon:i,text:"Same rules for manual and algorithmic"},{icon:o,text:"Signed inside the attested enclave"},{icon:v,text:"No private key ever touches the trader's machine"}],visual:e.jsx(r,{src:"/console/policy-rules.webp",alt:"Fortkey policy rules checked before a manual order signs.",tint:!0})}),e.jsx(t,{tone:"dark",title:e.jsx(e.Fragment,{children:"No device, no friction."}),paragraph:"No hardware to ship, lose, or pass around. On agent venues, approve once and trade freely.",bullets:[{icon:n,text:"Nothing physical to manage"},{icon:j,text:"Approve once on agent venues"},{icon:T,text:"Sessions visible and revocable in the console"}],visual:e.jsx(r,{src:"/console/sessions.webp",alt:"Fortkey sessions view with revoke controls."})}),e.jsx(t,{tone:"light",title:e.jsx(e.Fragment,{children:"One wallet, every mode."}),paragraph:"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.",bullets:[{icon:S,text:"Rust SDK and REST API for bots"},{icon:s,text:"One set of keys and policies across every mode"},{icon:n,text:"Nothing to migrate between manual and algorithmic"}],learnMore:{to:"/product/hft-vaults",label:"Learn more about HFT vaults"},visual:e.jsxs("div",{className:"relative overflow-hidden rounded-3xl border border-white/60 p-5 shadow-[0_24px_70px_-40px_rgba(11,20,48,0.3)]",style:{background:"linear-gradient(135deg, #E1EAFB 0%, #D9EEE8 100%)"},children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0",style:{background:"radial-gradient(60% 60% at 72% 24%, rgba(37,99,235,0.10), transparent), radial-gradient(60% 60% at 28% 82%, rgba(55,187,173,0.12), transparent)"}}),e.jsx("div",{className:"relative min-w-0",children:e.jsx(w,{tabs:b})})]})}),e.jsx(g,{textureVariant:3,statement:"A withdrawal the bot could never make.",story:"A desk ran an arbitrage strategy on Hyperliquid through an HFT vault. When funds needed to come out, a trader connected through FortkeyLink and made the withdrawal manually, policy-checked and signed in the same enclave, on the same keys. The bot never held withdrawal rights. It never needed to."}),e.jsx(k,{items:[{icon:E,title:"Hardware-device compatibility",desc:"Works in any wallet that supports a hardware device."},{icon:F,title:"Any DEX",desc:"Hyperliquid, Drift, or any DEX your traders use."},{icon:i,title:"Policy-checked orders",desc:"Every manual order runs through the policy engine."},{icon:o,title:"Enclave signing",desc:"Signatures happen inside the attested enclave."},{icon:s,title:"One-time venue approvals",desc:"Approve once on agent venues, then trade freely."},{icon:L,title:"Console visibility",desc:"Every session visible and revocable from the console."}]}),e.jsx(f,{ctaHeadline:"Connect MetaMask. Trade on any DEX.",related:[{to:"/product/hft-vaults",title:"HFT vaults",desc:"Sub-1ms enclave signing, co-located with your venues."},{to:"/product/policy-engine",title:"Policy engine",desc:"Field-level checks on every signature."},{to:"/product",title:"Product overview",desc:"The full Fortkey platform at a glance."}]})]});function A(){return e.jsx(D,{})}const C=Object.freeze(Object.defineProperty({__proto__:null,default:A},Symbol.toStringTag,{value:"Module"})),te={hasServerOnlyHook:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!1}},isClientRuntimeLoaded:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:!0}},onBeforeRenderEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},dataEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},guardEnv:{type:"computed",definedAtData:null,valueSerialized:{type:"js-serialized",value:null}},onRenderClient:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/__internal/integration/onRenderClient",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:p}},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/product/fortkeylink/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:C}},hydrationCanBeAborted:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/config",fileExportPathToShowToUser:["default","hydrationCanBeAborted"]},valueSerialized:{type:"js-serialized",value:!0}},Wrapper:{type:"cumulative",definedAtData:[{filePathToShowToUser:"/pages/+Wrapper.tsx",fileExportPathToShowToUser:[]}],valueSerialized:[{type:"plus-file",exportValues:c}]},Loading:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/__internal/integration/Loading",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:d}}};export{te as configValuesSerialized};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.