PageSourceSearch

https://www.fortkey.io/assets/entries/pages_insights.mXoG3Xs_.js

js fortkey.io collected 2026-10-09 23:22:40 UTC 5,687 bytes, 1 lines download raw bytes

1import{j as e,i as r,a as s,o as l}from"../chunks/chunk-BpqaKSuD.js";import{L as d,S as c,a as u}from"../chunks/chunk-C4640EzS.js";/* empty css                      */import"../chunks/chunk-DxKNguCu.js";/* empty css                      */const p=[{to:"/insights/self-custody-for-market-makers",title:"Self-custody for market makers: when the math actually pays off",excerpt:"Trading is moving to venues where you hold your own keys by default. What slow signing costs there, and when buying the signing layer beats building it.",date:"June 2026",comingSoon:!1},{to:"/insights/signing-latency-benchmark",title:"Benchmarking the HFT Vault: sub-millisecond signing, measured end-to-end",excerpt:"Five payload types, five million signatures each, measured end-to-end inside an AWS Nitro Enclave. How the HFT Vault compares to plaintext keys and AWS KMS, tail latency included.",date:"August 2026",comingSoon:!1}],i=[{backgroundPosition:"center top",transform:"none"},{backgroundPosition:"center",transform:"scaleX(-1)"},{backgroundPosition:"center bottom",transform:"none"}],o="group flex flex-col overflow-hidden rounded-2xl border border-[#E9E8E2] bg-white shadow-[0_1px_3px_rgba(0,0,0,0.04)] transition-all duration-300 ease-out",g=" hover:-translate-y-1 hover:border-[rgba(37,99,235,0.35)] hover:shadow-[0_12px_30px_rgba(11,20,48,0.10)]",m=()=>e.jsxs(d,{title:"Insights | Fortkey",description:"Technical writing and research from Fortkey on self-custody execution infrastructure, latency, and onchain trading.",children:[e.jsx(c,{path:"/insights",title:"Insights | Fortkey",description:"Technical writing and research from Fortkey on self-custody execution infrastructure, latency, and onchain trading."}),e.jsx("section",{className:"relative pt-36 pb-12 lg:pt-40 lg:pb-16",style:{background:"linear-gradient(180deg, #FCFCFA 0%, #F5F8FD 100%)"},children:e.jsxs("div",{className:"container relative mx-auto px-4 lg:px-8 max-w-3xl",children:[e.jsx("h1",{className:"font-display font-semibold text-3xl sm:text-3xl lg:text-[52px]",style:{color:"#14171C",letterSpacing:"-0.02em"},children:"Insights"}),e.jsx("p",{className:"type-body-lg mt-6 max-w-2xl",children:"Technical writing and research on self-custody execution infrastructure, latency, and onchain trading."})]})}),e.jsx("section",{className:"pb-20 lg:pb-28",style:{backgroundColor:"#FCFCFA"},children:e.jsx("div",{className:"container mx-auto px-4 lg:px-8 max-w-6xl",children:e.jsx("div",{className:"grid gap-8 sm:grid-cols-2 lg:grid-cols-3",children:p.map((t,a)=>{const n=e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative h-44 overflow-hidden",children:[e.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 bg-cover bg-no-repeat transition-transform duration-500 group-hover:scale-[1.04] bg-teal-texture",style:{backgroundPosition:i[a%3].backgroundPosition,transform:i[a%3].transform}}),e.jsx("div",{"aria-hidden":!0,className:"absolute inset-0",style:{background:"linear-gradient(180deg, rgba(252,252,250,0.08) 0%, rgba(252,252,250,0.28) 100%)"}})]}),e.jsxs("div",{className:"flex flex-1 flex-col p-7",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em]",style:{color:t.comingSoon?"#9AA0AB":"#2563EB"},children:t.date}),e.jsx("h2",{className:"mt-3 font-display text-xl font-semibold leading-snug tracking-[-0.02em]",style:{color:"#14171C"},children:t.comingSoon?t.title:e.jsx("span",{className:"group-hover:text-[#2563EB] transition-colors duration-300",children:t.title})}),e.jsx("p",{className:"mt-3 text-[17px] leading-relaxed",style:{color:"#5B6470"},children:t.excerpt}),t.comingSoon?e.jsx("span",{className:"mt-5 inline-flex items-center gap-1 text-sm font-semibold",style:{color:"#9AA0AB"},children:"Coming soon"}):e.jsx("span",{className:"mt-5 inline-flex items-center gap-1 text-sm font-semibold text-[#2563EB] transition-transform duration-200 group-hover:translate-x-0.5",children:"Read →"})]})]});return t.comingSoon?e.jsx("div",{className:o+" cursor-default",children:n},t.title):e.jsx(u,{to:t.to,className:o+g,children:n},t.title)})})})})]});function h(){return e.jsx(m,{})}const x=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"})),j={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:l}},Page:{type:"standard",definedAtData:{filePathToShowToUser:"/pages/insights/+Page.tsx",fileExportPathToShowToUser:[]},valueSerialized:{type:"plus-file",exportValues:x}},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:s}]},Loading:{type:"standard",definedAtData:{filePathToShowToUser:"vike-react/__internal/integration/Loading",fileExportPathToShowToUser:[]},valueSerialized:{type:"pointer-import",value:r}}};export{j 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.