PageSourceSearch

https://tinfoil.sh/_next/static/chunks/036~2u-~37txd.js?dpl=dpl_F1pCmSpjZFnfzWcJrx1WiWnB11MU

js tinfoil.sh collected 2026-10-02 02:56:00 UTC 44,632 bytes, 3 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12230,e=>{"use strict";var t=e.i(427741);e.i(116233);var r=e.i(989239);function i({children:e,className:a}){return(0,t.jsx)("div",{className:(0,r.cn)("animate-in fade-in slide-in-from-bottom-2 fill-mode-both duration-700 ease-out motion-reduce:animate-none",a),children:e})}e.s(["Reveal",0,i,"withReveal",0,function(e){return function(r){return(0,t.jsx)(i,{children:(0,t.jsx)(e,{...r})})}}])},515128,e=>{"use strict";var t=e.i(735364);let r=()=>()=>{};e.s(["useIsClient",0,function(){return(0,t.useSyncExternalStore)(r,()=>!0,()=>!1)}])},454219,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(735364),a="u"<typeof window,n=a?()=>{}:i.useLayoutEffect,s=a?()=>{}:i.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return a&&(t?.mountedInstances?.add(e.children),o()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),s(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},640715,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return p},defaultHead:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(481258),s=e.r(744066),o=e.r(427741),l=s._(e.r(735364)),c=n._(e.r(454219)),d=e.r(28821);function u(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(570069);let h=["name","httpEquiv","charSet","itemProp"];function f(e){let t,r,i,a;return e.reduce(m,[]).reverse().concat(u().reverse()).filter((t=new Set,r=new Set,i=new Set,a={},e=>{let n=!0,s=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){s=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?n=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?n=!1:r.add(e.type);break;case"meta":for(let t=0,r=h.length;t<r;t++){let r=h[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?n=!1:i.add(r);else{let t=e.props[r],i=a[r]||new Set;("name"!==r||!s)&&i.has(t)?n=!1:(i.add(t),a[r]=i)}}}return n})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let p=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,o.jsx)(c.default,{reduceComponentsToState:f,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},754177,e=>{"use strict";var t=e.i(735364);let r=t.forwardRef(function({title:e,titleId:r,...i},a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":r},i),e?t.createElement("title",{id:r},e):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))});e.s(["ChevronRightIcon",0,r],754177)},460094,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:s}){let o=r?40*r:e,l=a?40*a:t,c=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${c}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3Cfe
1Composite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${c?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},264580,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return s}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=["default","imgix","cloudinary","akamai","custom"],s={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},71782,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return c}}),e.r(570069);let i=e.r(485617),a=e.r(460094),n=e.r(264580),s=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function c({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:u=!1,loading:m,className:h,quality:f,width:p,height:x,fill:g=!1,style:v,overrideSrc:y,onLoad:b,onLoadingComplete:w,placeholder:j="empty",blurDataURL:k,fetchPriority:N,decoding:C="async",layout:P,objectFit:S,objectPosition:I,lazyBoundary:_,lazyRoot:O,...T},E){var R;let A,z,L,{imgConf:M,showAltText:$,blurComplete:q,defaultLoader:D}=E,F=M||n.imageConfigDefault;if("allSizes"in F)A=F;else{let e=[...F.deviceSizes,...F.imageSizes].sort((e,t)=>e-t),t=F.deviceSizes.sort((e,t)=>e-t),r=F.qualities?.sort((e,t)=>e-t);A={...F,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===D)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let W=T.loader||D;delete T.loader,delete T.srcSet;let U="__next_img_default"in W;if(U){if("custom"===A.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=W;W=t=>{let{config:r,...i}=t;return e(i)}}if(P){"fill"===P&&(g=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(v={...v,...e});let r={responsive:"100vw",fill:"100vw"}[P];r&&!t&&(t=r)}let B="",G=l(p),H=l(x);if((R=e)&&"object"==typeof R&&(o(R)||void 0!==R.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(z=t.blurWidth,L=t.blurHeight,k=k||t.blurDataURL,B=t.src,!g)if(G||H){if(G&&!H){let e=G/t.width;H=Math.round(t.height*e)}else if(!G&&H){let e=H/t.height;G=Math.round(t.width*e)}}else G=t.width,H=t.height}let V=!d&&!u&&("lazy"===m||void 0===m);(!(e="string"==typeof e?e:B)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,V=!1),A.unoptimized&&(r=!0),U&&!A.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let Q=l(f),Y=Object.assign(g?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:S,objectPosition:I}:{},$?{}:{color:"transparent"},v),K=q||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:G,heightInt:H,blurWidth:z,blurHeight:L,blurDataURL:k||"",objectFit:Y.objectFit})}")`:`url("${j}")`,X=s.includes(Y.objectFit)?"fill"===Y.objectFit?"100% 100%":"cover":Y.objectFit,Z=K?{backgroundSize:X,backgroundPosition:Y.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},J=function({config:e,src:t,unoptimized:r,width:a,quality:n,sizes:s,loader:o}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,i.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let i=new URLSearchParams(t.slice(r+1));i.get("dpl")||(i.append("dpl",e),t=t.slice(0,r)+"?"+i.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:c}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=r.exec(i);)a.push(parseInt(e[2]));if(a.length){let r=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,s),d=l.length-1;return{sizes:s||"w"!==c?s:"100vw",srcSet:l.map((r,i)=>`${o({config:e,src:t,quality:n,width:r})} ${"w"===c?r:i+1}${c}`).join(", "),src:o({config:e,src:t,quality:n,width:l[d]})}}({config:A,src:e,unoptimized:r,width:G,quality:Q,sizes:t,loader:W}),ee=V?"lazy":m;return{props:{...T,loading:ee,fetchPriority:N,width:G,height:H,decoding:C,className:h,style:{...Y,...Z},sizes:J.sizes,srcSet:J.srcSet,src:y||J.src},meta:{unoptimized:r,preload:u||d,placeholder:j,fill:g}}}},212120,(e,t,r)=>{"use strict";
2Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let i=e.r(481258)._(e.r(735364)),a=e.r(264580),n=i.default.createContext(a.imageConfigDefault)},435635,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},912442,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let i=e.r(435635),a=e.r(485617);function n({config:e,src:t,width:r,quality:s}){let o=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),i=r.get("dpl");if(i){o=i,r.delete("dpl");let a=r.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,i.findClosestQuality)(s,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}n.__next_img_default=!0;let s=n},822646,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return b}});let i=e.r(481258),a=e.r(744066),n=e.r(427741),s=a._(e.r(735364)),o=i._(e.r(473149)),l=i._(e.r(640715)),c=e.r(71782),d=e.r(264580),u=e.r(212120);e.r(570069);let m=e.r(755617),h=i._(e.r(912442)),f=e.r(285960),p={deviceSizes:[640,750,828,1080,1200,1920],imageSizes:[16,32,48,64,96,128,256,384],qualities:[45,75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function x(e,t,r,i,a,n,s){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function g(e){return s.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,s.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:a,decoding:o,className:l,style:c,fetchPriority:d,placeholder:u,loading:m,unoptimized:h,fill:p,onLoadRef:v,onLoadingCompleteRef:y,setBlurComplete:b,setShowAltText:w,sizesInput:j,onLoad:k,onError:N,...C},P)=>{let S=(0,s.useCallback)(e=>{e&&(N&&(e.src=e.src),e.complete&&x(e,u,v,y,b,h,j))},[e,u,v,y,b,N,h,j]),I=(0,f.useMergedRef)(P,S);return(0,n.jsx)("img",{...C,...g(d),loading:m,width:a,height:i,decoding:o,"data-nimg":p?"fill":"1",className:l,style:c,sizes:r,srcSet:t,src:e,ref:I,onLoad:e=>{x(e.currentTarget,u,v,y,b,h,j)},onError:e=>{w(!0),"empty"!==u&&b(!0),N&&N(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...g(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let b=(0,s.forwardRef)((e,t)=>{let r=(0,s.useContext)(m.RouterContext),i=(0,s.useContext)(u.ImageConfigContext),a=(0,s.useMemo)(()=>{let e=p||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>
3e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:o,onLoadingComplete:l}=e,f=(0,s.useRef)(o);(0,s.useEffect)(()=>{f.current=o},[o]);let x=(0,s.useRef)(l);(0,s.useEffect)(()=>{x.current=l},[l]);let[g,b]=(0,s.useState)(!1),[w,j]=(0,s.useState)(!1),{props:k,meta:N}=(0,c.getImgProps)(e,{defaultLoader:h.default,imgConf:a,blurComplete:g,showAltText:w});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(v,{...k,unoptimized:N.unoptimized,placeholder:N.placeholder,fill:N.fill,onLoadRef:f,onLoadingCompleteRef:x,setBlurComplete:b,setShowAltText:j,sizesInput:e.sizes,ref:t}),N.preload?(0,n.jsx)(y,{isAppRouter:!r,imgAttributes:k}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},80725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return c}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});
3let n=e.r(481258),s=e.r(71782),o=e.r(822646),l=n._(e.r(912442));function c(e){let{props:t}=(0,s.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920],imageSizes:[16,32,48,64,96,128,256,384],qualities:[45,75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=o.Image},60629,(e,t,r)=>{t.exports=e.r(80725)},80053,e=>{"use strict";var t=e.i(427741),r=e.i(12230),i=e.i(735364);e.s(["LazyStatusBadge",0,function(){let[e,a]=(0,i.useState)(!1),n=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=n.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e.isIntersecting&&(a(!0),t.disconnect())},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[]),(0,t.jsx)("div",{ref:n,className:"flex w-[210px] items-center justify-start overflow-hidden",children:e&&(0,t.jsx)(r.Reveal,{children:(0,t.jsx)("iframe",{src:"https://status.tinfoil.sh/badge?theme=dark",width:"250",height:"30",style:{marginLeft:"-4px",border:"none",verticalAlign:"middle"},title:"Tinfoil Status",loading:"lazy"})})})}])},391220,e=>{"use strict";var t=e.i(427741),r=e.i(7284);e.s(["Container",0,function({className:e,children:i}){return(0,t.jsx)("div",{className:(0,r.clsx)(e,"w-full px-4 sm:px-6 lg:px-8"),children:(0,t.jsx)("div",{className:"mx-auto max-w-full sm:max-w-2xl lg:max-w-7xl",children:i})})}])},303448,e=>{"use strict";var t=e.i(427741),r=e.i(7284),i=e.i(735364);e.i(480518);var a=e.i(559163);let n=i.useLayoutEffect,s=16*parseFloat(a.RADIUS_BASE);e.s(["GrowOnScroll",0,function({children:e,className:a,shadow:o=!1,animate:l=!0}){let c=(0,i.useRef)(null),[d,u]=(0,i.useState)(+!l),[m,h]=(0,i.useState)(0);n(()=>{if(!l)return;let e=!1,t=()=>{e=!1;let t=c.current;if(!t)return;let r=.7*window.innerHeight,{top:i}=t.getBoundingClientRect();u(Math.min(1,Math.max(0,1-i/r))),h(window.innerWidth)},r=()=>{e||(e=!0,requestAnimationFrame(t))};return t(),window.addEventListener("scroll",r,{passive:!0}),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}},[l]);let f=l?0===m?1280:m>1280?1280+(m-1280)*d:void 0:void 0;return(0,t.jsx)("div",{ref:c,className:"relative z-10",children:(0,t.jsx)("div",{className:(0,r.default)("relative mx-auto overflow-hidden",a),style:{maxWidth:f,borderRadius:s*(1-d),...o?{boxShadow:`0 25px 50px -12px rgba(0, 0, 0, ${.25*(1-d)})`}:{}},children:e})})}])},897614,e=>{"use strict";var t=e.i(427741),r=e.i(7284);e.s(["SectionWrapper",0,function({children:e,className:i="",id:a}){return(0,t.jsx)("section",{id:a,className:(0,r.default)("pointer-events-auto relative z-10 overflow-x-clip",i),children:e})}])},124091,e=>{"use strict";var t=e.i(427741),r=e.i(240218);e.i(116233);var i=e.i(322142),a=e.i(735364);e.s(["CollapsibleFAQ",0,function({question:e,answer:n}){let[s,o]=(0,a.useState)(!1);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>o(!s),"aria-expanded":s,className:"flex w-full cursor-pointer items-center justify-between py-5 text-left",children:[(0,t.jsx)(i.H3,{as:"span",className:"text-tinfoil-accent-dark",children:e}),(0,t.jsx)("span",{className:"ml-4 flex-shrink-0",children:(0,t.jsx)(r.ChevronDownIcon,{"aria-hidden":"true",className:`text-tinfoil-dark h-5 w-5 ${s?"rotate-180":""}`})})]}),s&&(0,t.jsx)("div",{className:"overflow-hidden pb-5",children:(0,t.jsx)(i.Body,{as:"div",className:"rounded-site-lg bg-tinfoil-light-cool text-tinfoil-muted -mt-2 p-5",children:n})})]})}])},19516,e=>{"use strict";var t=e.i(427741);e.i(116233);var r=e.i(989239),i=e.i(60629),a=e.i(735364);e.s(["FadeInImage",0,function({alt:e,className:n,style:s,...o}){let[l,c]=(0,a.useState)(!1);return(0,t.jsx)(i.default,{...o,alt:e,className:(0,r.cn)("transition-opacity duration-700 ease-out",n),style:{...s,...l?void 0:{opacity:0}},onLoad:()=>c(!0)})}])},350696,e=>{"use strict";var t=e.i(427741);e.i(116233);var r=e.i(322142),i=e.i(7284);e.s(["SectionHeader",0,function({title:e,description:a,dark:n=!1,align:s="left",className:o,titleClassName:l,descriptionClassName:c,children:d}){return(0,t.jsxs)("div",{className:(0,i.default)("left"===s?"text-left":"text-center",o),children:[(0,t.jsx)(r.H2,{dark:n,className:(0,i.default)("left"===s&&"text-pretty",l),children:e}),a&&(0,t.jsx)(r.Lead,{className:(0,i.default)("left"===s&&"mx-0 max-w-4xl text-balance text-left",n&&"text-tinfoil-light",c),children:a}),d]})}])},540998,e=>{"use strict";var t=e.i(427741),r=e.i(350696);e.i(116233);var i=e.i(322142),a=e.i(735364);let n=a.forwardRef(function({title:e,titleId:t,...r},i){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:i,"aria-labelledby":t},r),e?a.createElement("title",{id:t},e):null,a.createElement("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 0 1 .143 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143Z",clipRule:"evenodd"}))}),s=a.forwardRef(function({title:e,titleId:t,...r},i){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:i,"aria-labelledby":t},r),e?a.createElement("title",{id:t},e):null,a.createElement("path",{d:"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z"}))});var o=e.i(807210),l=e.i(391220),c=e.i(363226);let d=[{name:"Other providers",id:"tier-openai",href:"#",priceMonthly:"",subt
3itle:"Closed Source Models",mostPopular:!1,deployment:"cloud"},{name:"Local AI",id:"tier-onprem",href:"#",priceMonthly:"",subtitle:"Open-source & Custom Models",mostPopular:!1,icon:(0,t.jsx)(o.TfServer,{size:20}),deployment:"self-hosted"},{name:"Tinfoil",id:"tier-tinfoil",href:"#",priceMonthly:"",subtitle:"Open-source & Custom Models",mostPopular:!0,logo:(0,t.jsx)(function({height:e=24}){return(0,t.jsx)("img",{src:"/tinfoil-logo-black.png",alt:"Tinfoil",style:{height:e,width:"auto"}})},{height:18}),deployment:"cloud"}],u=[{name:"",features:[{name:"Provable Zero Data Retention",tiers:{"Other providers":!1,"Local AI":!0,Tinfoil:!0}},{name:"Cloud Convenience",tiers:{"Other providers":!0,"Local AI":!1,Tinfoil:!0},subFeatures:[{name:"Setup costs",tiers:{"Other providers":"Low","Local AI":"High",Tinfoil:"Low"}},{name:"Complexity",tiers:{"Other providers":"Low","Local AI":"High",Tinfoil:"Low"}},{name:"Scalability",tiers:{"Other providers":"Good","Local AI":"Poor",Tinfoil:"Good"}}]},{name:"Zero Trust",tiers:{"Other providers":!1,"Local AI":!1,Tinfoil:!0}},{name:"Private Observability",tiers:{"Other providers":!1,"Local AI":!1,Tinfoil:!0}}]}],m="rgba(6, 24, 32, 0.18)";function h(e){let t="horizontal"===e?"to right":"to bottom";return{backgroundImage:`repeating-linear-gradient(${t}, ${m} 0, ${m} 4px, transparent 4px, transparent 8px)`,maskImage:`linear-gradient(${t}, transparent, black 30%, black 70%, transparent)`,WebkitMaskImage:`linear-gradient(${t}, transparent, black 30%, black 70%, transparent)`}}let f=h("horizontal"),p=h("vertical");function x(e,t){return["low","minimal","good"].includes(e.toLowerCase())?t?"text-tinfoil-accent-dark font-medium":"text-tinfoil-dark font-medium":["high","poor"].includes(e.toLowerCase())?"text-red-600 font-medium":"text-gray-600"}e.s(["default",0,function(){let[e,o]=(0,a.useState)(d[2].id);return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(c.DiamondTexture,{className:"!-bottom-32 !-top-32 sm:!-bottom-28 sm:!-top-28 lg:!-bottom-32 lg:!-top-32"}),(0,t.jsxs)(l.Container,{className:"relative",children:[(0,t.jsx)(r.SectionHeader,{title:(0,t.jsxs)(t.Fragment,{children:["Privacy of local. ",(0,t.jsx)("br",{className:"sm:hidden"}),"Power of cloud."]}),description:"Tinfoil runs AI models inside secure hardware enclaves. This gives you the privacy of local AI with the power of cloud computing."}),(0,t.jsx)("div",{className:"isolate mt-12 hidden sm:block",children:(0,t.jsxs)("div",{className:"relative -mx-4 sm:-mx-6",children:[d.some(e=>e.mostPopular)?(0,t.jsx)("div",{className:"absolute inset-x-2 inset-y-0 -z-10 flex sm:inset-x-4",children:(0,t.jsx)("div",{style:{marginLeft:`${(d.findIndex(e=>e.mostPopular)+1)*25}%`},"aria-hidden":"true",className:"flex w-1/4 px-4",children:(0,t.jsxs)("div",{className:"relative w-full rounded-site-md border border-tinfoil-accent-dark-soft bg-tinfoil-accent-dark-subtle",children:[(0,t.jsx)("div",{className:"pointer-events-none absolute -left-20 -right-20 top-0 h-px",style:f}),(0,t.jsx)("div",{className:"pointer-events-none absolute -left-20 -right-20 bottom-0 h-px",style:f}),(0,t.jsx)("div",{className:"pointer-events-none absolute -bottom-20 -top-20 left-0 w-px",style:p}),(0,t.jsx)("div",{className:"pointer-events-none absolute -bottom-20 -top-20 right-0 w-px",style:p})]})})}):null,(0,t.jsxs)("table",{className:"w-full table-fixed border-separate border-spacing-4 text-left sm:border-spacing-6",children:[(0,t.jsx)("caption",{className:"sr-only",children:"Feature comparison"}),(0,t.jsxs)("colgroup",{children:[(0,t.jsx)("col",{className:"w-1/4"}),(0,t.jsx)("col",{className:"w-1/4"}),(0,t.jsx)("col",{className:"w-1/4"}),(0,t.jsx)("col",{className:"w-1/4"})]}),(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{}),d.map(e=>(0,t.jsx)("th",{scope:"col",className:"pt-4",children:(0,t.jsxs)("div",{className:"flex flex-col items-center",children:["logo"in e?(0,t.jsx)("div",{className:"flex items-center justify-center",children:e.logo}):(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm font-bold text-tinfoil-dark sm:text-xl sm:font-bold",children:[e.icon,e.name]}),(0,t.jsx)("div",{className:"text-balance text-center text-xs font-normal text-gray-600 sm:text-sm",children:e.subt
3itle})]})},e.id))]})}),(0,t.jsx)("tbody",{children:u.map((e,r)=>(0,t.jsxs)(a.Fragment,{children:[e.name&&(0,t.jsx)("tr",{children:(0,t.jsxs)("th",{scope:"colgroup",colSpan:4,className:function(...e){return e.filter(Boolean).join(" ")}(0===r?"pt-0":"pt-4","relative pb-4 text-left align-middle text-sm font-semibold text-gray-950 sm:text-base lg:text-xl"),children:[e.name,(0,t.jsx)("div",{className:"absolute inset-x-0 mt-4 h-px bg-gray-900/10"})]})}),e.features.map(e=>(0,t.jsxs)(a.Fragment,{children:[(0,t.jsxs)("tr",{children:[(0,t.jsxs)("th",{scope:"row",className:"relative py-2 text-left align-middle text-sm font-normal text-tinfoil-dark sm:text-base lg:text-xl",children:[e.name,(0,t.jsx)("div",{className:"absolute inset-x-0 mt-4 h-px bg-gray-900/5"})]}),d.map(r=>(0,t.jsxs)("td",{className:"px-6 py-4 text-center align-middle",children:["string"==typeof e.tiers[r.name]?(0,t.jsx)("span",{className:`text-sm ${x(String(e.tiers[r.name]),r.mostPopular)}`,children:e.tiers[r.name]}):e.tiers[r.name]?(0,t.jsx)(n,{className:`mx-auto h-5 w-5 sm:h-5 sm:w-5 lg:h-6 lg:w-6 ${r.mostPopular?"text-tinfoil-accent-dark":"text-tinfoil-dark"}`}):(0,t.jsx)(s,{className:"mx-auto h-5 w-5 text-red-600 sm:h-5 sm:w-5 lg:h-6 lg:w-6"}),(0,t.jsxs)("span",{className:"sr-only",children:["string"==typeof e.tiers[r.name]?e.tiers[r.name]:e.tiers[r.name]?"Included":"Not included"," ","in ",r.name]})]},r.id))]}),e.subFeatures?.map(e=>(0,t.jsxs)("tr",{children:[(0,t.jsxs)("th",{scope:"row",className:"relative py-2 text-left align-middle text-sm font-normal text-gray-600",children:[e.name,(0,t.jsx)("div",{className:"absolute inset-x-0 mt-4 h-px bg-gray-900/5"})]}),d.map(r=>(0,t.jsxs)("td",{className:"px-6 py-4 text-center align-middle",children:["string"==typeof e.tiers[r.name]?(0,t.jsx)("span",{className:`text-sm ${x(String(e.tiers[r.name]),r.mostPopular)}`,children:e.tiers[r.name]}):e.tiers[r.name]?(0,t.jsx)(n,{className:`mx-auto h-5 w-5 sm:h-5 sm:w-5 lg:h-6 lg:w-6 ${r.mostPopular?"text-tinfoil-accent-dark":"text-tinfoil-dark"}`}):(0,t.jsx)(s,{className:"mx-auto h-5 w-5 text-red-600 sm:h-5 sm:w-5 lg:h-6 lg:w-6"}),(0,t.jsxs)("span",{className:"sr-only",children:["string"==typeof e.tiers[r.name]?e.tiers[r.name]:e.tiers[r.name]?"Included":"Not included"," ","in ",r.name]})]},r.id))]},e.name))]},e.name))]},e.name))})]})]})}),(0,t.jsxs)("div",{className:"mt-8 sm:hidden",children:[(0,t.jsx)("div",{className:"flex border-b border-gray-200",children:d.map(r=>(0,t.jsx)("button",{className:`flex-1 py-3 text-center text-sm font-medium ${e===r.id?"border-b-2 border-tinfoil-accent-dark text-tinfoil-accent-dark":"text-gray-500 hover:text-gray-700"}`,onClick:()=>o(r.id),children:(0,t.jsx)("div",{className:"flex items-center justify-center gap-1.5",children:"logo"in r?r.logo:(0,t.jsxs)(t.Fragment,{children:[r.icon,r.name]})})},r.id))}),(0,t.jsx)("div",{className:"mt-4",children:d.map(r=>(0,t.jsxs)("div",{className:`${e===r.id?"block":"hidden"} ${r.mostPopular?"rounded-site-md border border-tinfoil-accent-dark-soft bg-tinfoil-accent-dark-subtle shadow-sm":""}`,children:[(0,t.jsxs)("div",{className:`mb-6 text-center ${r.mostPopular?"px-4 pt-6":""}`,children:["logo"in r?(0,t.jsx)("div",{className:"flex items-center justify-center",children:r.logo}):(0,t.jsxs)(i.H3,{className:"flex items-center justify-center gap-2 text-tinfoil-dark",children:[r.icon,r.name]}),(0,t.jsx)("p",{className:"text-sm font-normal text-gray-600",children:r.subtitle})]}),u.map(e=>(0,t.jsxs)("div",{className:`mb-8 ${r.mostPopular?"px-6":""}`,children:[e.name&&(0,t.jsx)(i.Label,{as:"h4",className:"mb-4 border-b pb-2 text-gray-950",children:e.name}),(0,t.jsx)("ul",{className:"space-y-4",children:e.features.map(e=>(0,t.jsxs)("li",{children:[(0,t.jsxs)("div",{className:"flex items-start",children:["string"==typeof e.tiers[r.name]?(0,t.jsx)("span",{className:`text-sm ${x(String(e.tiers[r.name]),r.mostPopular)} mr-3 mt-0.5`,children:e.tiers[r.name]}):e.tiers[r.name]?(0,t.jsx)(n,{className:`mr-3 mt-0.5 h-5 w-5 flex-shrink-0 ${r.mostPopular?"text-tinfoil-accent-dark":"text-tinfoil-dark"}`}):(0,t.jsx)(s,{className:"mr-3 mt-0.5 h-5 w-5 flex-shrink-0 text-red-600"}),(0,t.jsx)("span",{className:"text-sm text-tinfoil-dark",children:e.name})]}),e.subFeatures&&e.subFeatures.length>0&&(0,t.jsx)("ul",{className:"ml-8 mt-2 space-y-2",children:e.subFeatures.map(e=>(0,t.jsxs)("li",{className:"flex items-start",children:["string"==typeof e.tiers[r.name]?(0,t.jsx)("span",{className:`text-xs ${x(String(e.tiers[r.name]),r.mostPopular)} mr-2`,children:e.tiers[r.name]}):e.tiers[r.name]?(0,t.jsx)(n,{className:`mr-2 mt-0.5 h-4 w-4 flex-shrink-0 ${r.mostPopular?"text-tinfoil-accent-dark":"text-tinfoil-dark"}`}
3):(0,t.jsx)(s,{className:"mr-2 mt-0.5 h-4 w-4 flex-shrink-0 text-red-600"}),(0,t.jsx)("span",{className:"text-xs text-gray-700",children:e.name})]},e.name))})]},e.name))})]},e.name)),r.mostPopular&&(0,t.jsx)("div",{className:"pb-6"})]},r.id))})]})]})]})}],540998)},330037,e=>{"use strict";var t=e.i(427741);e.i(116233);var r=e.i(645529),i=e.i(905551),a=e.i(124091),n=e.i(391220),s=e.i(202127),o=e.i(350696);let l=[{question:"How does Tinfoil protect my data?",category:"Privacy",categoryColor:"bg-gray-100 text-gray-700 border-gray-200",answer:(0,t.jsxs)("span",{children:["Your prompts and responses are processed inside secure hardware enclaves built on"," ",(0,t.jsx)("a",{href:"https://www.amd.com/en/developer/sev.html",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"AMD SEV-SNP"})," ","CPUs and"," ",(0,t.jsx)("a",{href:"https://www.nvidia.com/en-us/data-center/solutions/confidential-computing/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"NVIDIA confidential-compute"})," ","GPUs. The decryption keys live inside the hardware and never leave it, so we cannot inspect your data in transit, in memory, or at rest. On every connection, our SDKs verify a hardware-signed attestation that the enclave is running the exact open-source code and model weights we publish. Attestations are recorded in the public"," ",(0,t.jsx)("a",{href:"https://www.sigstore.dev/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Sigstore"})," ","transparency log so anyone can audit them. See our"," ",(0,t.jsx)("a",{href:"/security-and-privacy-faq",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Security and Privacy FAQ"})," ","for deeper questions."]})},{question:"What does end-to-end privacy mean?",category:"Privacy",categoryColor:"bg-gray-100 text-gray-700 border-gray-200",answer:"Your request is encrypted end-to-end to the secure hardware enclave: TLS terminates inside the enclave and the decryption key never leaves the hardware boundary. Only the model running inside the enclave sees the plaintext. No Tinfoil employee, no infrastructure provider, and no subprocessor can access your conversations."},{question:"How is Tinfoil different from typical AI security approaches?",category:"Privacy",categoryColor:"bg-gray-100 text-gray-700 border-gray-200",answer:(0,t.jsx)("span",{children:"Most AI providers rely on policy: they tell you they won't read or train on your data, but you have to trust them. With Tinfoil, the guarantee is cryptographic rather than policy-based. Every connection verifies a hardware attestation before any plaintext is sent, and the decryption keys live inside the enclave so we cannot inspect your data even if we wanted to."})},{question:"Is there a performance overhead when using Tinfoil?",category:"Performance",categoryColor:"bg-slate-100 text-slate-700 border-slate-200",answer:(0,t.jsxs)("span",{children:["Confidential computing adds a small overhead compared to non-private workloads. On"," ",(0,t.jsx)("a",{href:"https://www.nvidia.com/en-us/data-center/technologies/hopper-architecture/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"NVIDIA Hopper"})," ","GPUs (H100, H200), the overhead is typically less than 10% (see"," ",(0,t.jsx)("a",{href:"https://developer.nvidia.com/blog/confidential-computing-on-h100-gpus-for-secure-and-trustworthy-ai/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"NVIDIA's writeup"}),"). On"," ",(0,t.jsx)("a",{href:"https://www.nvidia.com/en-us/data-center/technologies/blackwell-architecture/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"NVIDIA Blackwell"})," ","GPUs (B200), the overhead is negligible. We run our models on the latest generation hardware available, so for typical chat and inference workloads you should expect performance comparable to running the same model on the same hardware without confidential computing enabled."]})},{question:"Is Tinfoil compatible with closed-source models like GPT-5 and Claude?",category:"Features",categoryColor:"bg-zinc-100 text-zinc-700 border-zinc-200",answer:(0,t.jsxs)("span",{children:["Not for closed commercial providers like OpenAI's GPT-5 or Anthropic's Claude. They don't expose their weights in any form, so we cannot attest to them. We support open-weight models in our hosted catalog (DeepSeek, Kimi, Llama, Qwen, GPT-OSS), where anyone can recompute the weight fingerprint from the public checkpoint and verify it matches the enclave's attestation.",(0,t.jsx)("br",{}),(0,t.jsx)("br",{}),"If you have your own proprietary model, you can bring it to"," ",(0,t.jsx)("a",{href:"/containers",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Tinfoil Containers"})," ",'using our "open hash" approach: you provide the weights encrypted, we attest to the hash of the weights without ever seeing them in plaintext, and the enclave decrypts them only at runtime inside confidential memory. This lets us host closed models that customers own without ever having access to their weights.']})},{question:"What analytics and observability does Tinfoil offer?",category:"Features",categoryColor:"bg-zinc-100 text-zinc-700 border-zinc-200",answer:(0,t.jsxs)("span",{children:["Tinfoil exposes"," ",(0,t.jsx)("a",{href:"https://prometheus.io/",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Prometheus"}),"-compatible metrics covering request counts, token counts, latency, and error rates. These metrics never contain prompt or response content, only operational counters, so you can monitor and debug your applications without weakening the enclave's confidentiality guarantees."]})},{question:"Can I deploy my own AI models?",category:"Features",categoryColor:"bg-zinc-100 text-zinc-700 border-zinc-200",answer:(0,t.jsxs)("span",{children:["Yes, through"," ",(0,t.jsx)("a",{href:"/containers",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Tinfoil Containers"}),". You bring a container image (any model, any inference engine), we run it inside a confidential VM, and your users get the same attestation-verified privacy guarantees as our hosted models. You retain control over what runs inside the container while the platform handles the confidential-compute hardware, the attestation chain, and the TLS-bound enclave endpoints."," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Contact us"})," ","to get started."]})},{question:"What type of workloads are suitable for Tinfoil?",category:"Technical",categoryColor:"bg-stone-100 text-stone-700 border-stone-200",answer:(0,t.jsxs)("span",{children:["Tinfoil supports text chat, code generation, agent workflows, document processing (PDFs and OCR), embeddings, vision and multimodal inputs, RAG pipelines, and tool / MCP use. For workloads that aren't a direct fit for our hosted models,"," ",(0,t.jsx)("a",{href:"/containers",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Tinfoil Containers"})," ","lets you run arbitrary inference workloads with the same privacy guarantees. We work with startups and enterprises across regulated industries including healthcare, legal, finance, and government."," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Contact us"})," ","with your use case."]})},{question:"Can I use Tinfoil with coding agents and other third-party clients?",category:"Integration",categoryColor:"bg-neutral-100 text-neutral-700 border-neutral-200",answer:(0,t.jsxs)("span",{children:["Yes. Most coding agents (Cursor, Cline, Continue, Aider, and similar tools) accept a custom OpenAI-compatible base URL, so you can point them at Tinfoil's API.",(0,t.jsx)("br",{}),(0,t.jsx)("br",{}),"The catch is that these clients don't perform attestation verification themselves, they just send your data to whatever URL you give them. To preserve the cryptographic guarantee that you're talking to a real enclave, we recommend running the"," ",(0,t.jsx)("a",{href:"https://docs.tinfoil.sh/sdk/cli-sdk",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Tinfoil CLI proxy"})," ","on your machine. The proxy verifies the enclave's attestation on every connection and forwards requests over the verified channel, so any client pointed at ",(0,t.jsx)("code",{children:"http://localhost:<port>"})," ","automatically inherits the same attested-connection guarantee as our SDKs. See the"," ",(0,t.jsx)("a",{href:"https://docs.tinfoil.sh",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Tinfoil docs"})," ","for setup instructions."]})},{question:"Can I integrate Tinfoil with my existing application?",category:"Integration",categoryColor:"bg-neutral-100 text-neutral-700 border-neutral-200",answer:(0,t.jsxs)("span",{children:["Yes. Tinfoil is OpenAI-compatible (",(0,t.jsx)("a",{href:"https://platform.openai.com/docs/guides/text-generation",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Chat 
3Completions"}),", embeddings, Responses), so existing OpenAI-style code works by swapping the base URL and API key. We also provide official"," ",(0,t.jsx)("a",{href:"https://docs.tinfoil.sh/sdk/overview",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"SDKs"})," ","for Python, JavaScript, Go, Rust, and Swift. The SDKs are the recommended path because they perform attestation verification on every connection automatically; without them, you skip the cryptographic guarantee that you're talking to a real enclave."]})},{question:"Can I keep server-side data and state?",category:"Technical",categoryColor:"bg-stone-100 text-stone-700 border-stone-200",answer:(0,t.jsxs)("span",{children:["Enclaves are stateless between requests by design. To support persistent state without weakening privacy, we use a client-side-key pattern: state is stored server-side as ciphertext, and the keys to decrypt it live on your device. Tinfoil Chat uses this pattern for chat history backups, we store the encrypted blobs and you hold the keys. The same approach can be applied to your own application."," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"Contact us"})," ","for guidance on the architecture."]})},{question:"Will Tinfoil eventually consider using fully homomorphic encryption?",category:"Technical",categoryColor:"bg-stone-100 text-stone-700 border-stone-200",answer:(0,t.jsxs)("span",{children:["Absolutely! As mentioned in our"," ",(0,t.jsx)("a",{href:"/mission",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"mission"}),", we believe in using the technology that exists and works in service of our goal of fully private AI. At the moment, FHE is too slow to support large-scale AI inference in real time, even with the latest"," ",(0,t.jsx)("a",{href:"https://research.ibm.com/publications/craterlake-a-hardware-accelerator-for-efficient-unbounded-computation-on-encrypted-data",className:"text-tinfoil-dark underline hover:text-tinfoil-accent-dark",children:"hardware-accelerated approaches"}),". It works well for limited use cases like blockchains and static database queries, but moderately complex workloads quickly hit a performance wall. We're focused on delivering the best possible privacy and user experience today, so we rely on secure hardware enclaves, which provide cryptographically verifiable privacy at full model performance."]})}];e.s(["FAQSection",0,function(){return(0,t.jsxs)("div",{id:"faq",className:"relative overflow-visible",children:[(0,t.jsx)("div",{className:"absolute inset-0 -bottom-20 -top-20 sm:-bottom-28 sm:-top-28 lg:-bottom-32 lg:-top-32",children:(0,t.jsx)(s.MaterialTexture,{})}),(0,t.jsx)(n.Container,{className:"relative z-10",children:(0,t.jsxs)("div",{className:"relative mx-auto max-w-4xl",children:[(0,t.jsx)(o.SectionHeader,{align:"center",title:"Frequently Asked Questions"}),(0,t.jsx)("div",{className:"mt-12",children:(0,t.jsxs)(i.MarketingCard,{className:"flex flex-col gap-4 border border-tinfoil-accent-dark/20 bg-tinfoil-light p-6 sm:p-8 lg:flex-row lg:items-center lg:gap-6",children:[(0,t.jsxs)("div",{className:"relative z-10 flex-1",children:[(0,t.jsx)("p",{className:"text-lg font-semibold text-tinfoil-dark",children:"Have a security or privacy question?"}),(0,t.jsx)("p",{className:"mt-1 text-base text-tinfoil-dark/70",children:"Detailed answers on what Tinfoil can and cannot see, how secure enclave attestation works, what would happened with legally-compelled disclosure, and more."})]}),(0,t.jsxs)(r.LandingButton,{href:"/security-and-privacy-faq",className:"relative z-10 shrink-0",children:[(0,t.jsx)("span",{className:"sm:hidden",children:"Security and Privacy FAQ"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Read the Security and Privacy FAQ"})]})]})}),(0,t.jsx)("div",{className:"mt-12 overflow-hidden rounded-site-lg border border-gray-200 bg-white px-6",children:(0,t.jsx)("div",{className:"divide-y divide-gray-200",children:l.map((e,r)=>(0,t.jsx)(a.CollapsibleFAQ,{question:e.question,answer:e.answer},r))})})]})})]})}])},860444,e=>{"use strict";var t=e.i(427741),r=e.i(12230),i=e.i(345543),a=e.i(735364);let n=(0,i.default)(()=>e.A(196143).then(e=>({default:(0,r.withReveal)(e.FeatureDemos)})),{loadableGenerated:{modules:[909108]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"min-h-[800px]"})});e.s(["LazyFeatureDemos",0,function(){let e=(0,a.useRef)(null),[r,i]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let t=e.current;if(!t)return;let r=new IntersectionObserver(([e])=>{e.isIntersecting&&(i(!0),r.disconnect())},{rootMargin:"200px"});return r.observe(t),()=>r.disconnect()},[]),(0,t.jsx)("div",{ref:e,className:"min-h-[800px]",children:r?(0,t.jsx)(n,{}):null})}])},196143,e=>{e.v(t=>
3Promise.all(["static/chunks/0z3k8946rm739.js","static/chunks/00-g385or0012.js","static/chunks/0aohy62~rlpq-.js","static/chunks/0b6bpog~6k.zt.js","static/chunks/0oln7_8n-wav5.js"].map(t=>e.l(t))).then(()=>t(909108)))},14633,e=>{e.v(t=>Promise.all(["static/chunks/0ty8v1~v7sngq.js"].map(t=>e.l(t))).then(()=>t(805674)))}]);

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.