PageSourceSearch

https://ssicevs.com/assets/RiverLanding-Sjcqjltb.js

js ssicevs.com collected 2026-10-08 04:51:08 UTC 30,166 bytes, 4 lines download raw bytes

1import{r as P,j as e}from"./metal-fx-C6GZ_SKA.js";import{fm as re,f4 as W,eA as ie,fn as xe,fr as he,eT as ue}from"./index-D1yBc__G.js";import{A as ge}from"./AsciiArt-nrbyX4Gm.js";import{A as fe}from"./AsciiThing-Cs8Bx8Ht.js";import{AsciiFluidLayer as be}from"./AsciiFluid-DCKRlzZs.js";import{R as ve,g as je}from"./ground-B8BmXcOC.js";import{S as d,b as R,c as U,i as l,h as we,e as k,j as y,d as C,a as F,B as q,g as ke,V as N,f as z,W as ye,G as Ne,R as Me}from"./parts-BmxketN2.js";import"./motion-BHwmuFpx.js";import"./presets-CREph9UK.js";import"./thing-models-B1ZyZg53.js";const Y=" .:-=+*#%@",E=t=>{const s=Math.sin(t*12.9898)*43758.5453;return s-Math.floor(s)};function Se({className:t="text-white/55",cell:s=11,every:a=.5,speed:i=17,width:r=2.4,reach:c=52,interactive:f=!0}){const g=P.useRef(null),w=re();return P.useEffect(()=>{const m=g.current;if(!m||w)return;const x=m.getContext("2d");if(!x)return;let h=0,b=0,M=1;const v=[];let S=0,B=0,L=0,O=0,D=!1;const oe=getComputedStyle(m).color,G=()=>{const n=m.getBoundingClientRect();!n.width||!n.height||(M=Math.min(2,window.devicePixelRatio||1),m.width=Math.round(n.width*M),m.height=Math.round(n.height*M),h=Math.ceil(n.width/s),b=Math.ceil(n.height/s),x.scale(M,M),x.font=`${s}px ui-monospace, SFMono-Regular, Menlo, monospace`,x.textBaseline="top")},V=(n,j)=>{S+=1,v.push({x:n??E(S*3.1)*h,y:j??(.18+E(S*7.7)*.64)*b,born:performance.now(),power:n===void 0?1.05+E(S*11.3)*.45:1.6})},H=n=>{if(B=requestAnimationFrame(H),n-L<33)return;for(L=n,n>O&&(V(),O=n+a*1e3*(.7+E(S*5.5)*.6));v.length&&(n-v[0].born)/1e3*i>c;)v.shift();if(x.clearRect(0,0,h*s+s,b*s+s),!v.length)return;const j=new Float32Array(h*b);for(const o of v){const p=(n-o.born)/1e3*i;if(p>c)continue;const $=o.power*(1-p/c)**1.4/(1+p*.025);if($<.015)continue;const ce=Math.max(0,Math.floor(o.y-p-r*2)),de=Math.min(b,Math.ceil(o.y+p+r*2));for(let T=ce;T<de;T++){const A=T-o.y,ee=Math.sqrt(Math.max(0,(p+r*2)**2-A*A)),me=Math.max(0,Math.floor(o.x-ee)),pe=Math.min(h,Math.ceil(o.x+ee));for(let _=me;_<pe;_++){const te=_-o.x,I=(Math.sqrt(te*te+A*A)-p)/r;I<-3||I>3||(j[T*h+_]+=$*Math.exp(-I*I))}}}x.fillStyle=oe;for(let o=0;o<b;o++)for(let u=0;u<h;u++){const p=j[o*h+u];if(p<.035)continue;const $=Math.min(Y.length-1,Math.floor(Math.min(1,p)*(Y.length-1)));$!==0&&(x.globalAlpha=Math.min(.95,.28+p*.8),x.fillText(Y[$],u*s,o*s))}x.globalAlpha=1},le=()=>{D||(D=!0,L=0,O=performance.now()+300,B=requestAnimationFrame(H))},Q=()=>{D=!1,cancelAnimationFrame(B),v.length=0,x.clearRect(0,0,m.width,m.height)};G();const X=new ResizeObserver(G);X.observe(m);const J=new IntersectionObserver(([n])=>n.isIntersecting?le():Q(),{rootMargin:"120px"});J.observe(m);const Z=n=>{const j=m.getBoundingClientRect(),o=(n.clientX-j.left)/s,u=(n.clientY-j.top)/s;o<0||u<0||o>h||u>b||V(o,u)};return f&&window.addEventListener("pointerdown",Z),()=>{Q(),X.disconnect(),J.disconnect(),f&&window.removeEventListener("pointerdown",Z)}},[s,a,f,c,w,i,r]),e.jsx("canvas",{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 h-full w-full select-none ${t}`,ref:g,"data-live":void 0,"data-live-props":void 0})}function ne({className:t=""}){return e.jsxs("span",{className:`inline-flex items-center gap-2.5 ${t}`,children:[e.jsxs("svg",{"aria-hidden":!0,className:"shrink-0",fill:"none",height:"18",viewBox:"0 0 18 18",width:"18",children:[e.jsx("path",{d:"M2 14.5c3.2 0 3.2-5 6.4-5s3.2 5 6.4 5",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.6"}),e.jsx("path",{d:"M2 8.5c3.2 0 3.2-5 6.4-5s3.2 5 6.4 5",stroke:"currentColor",strokeLinecap:"round",strokeOpacity:"0.4",strokeWidth:"1.6"})]}),e.jsx("span",{className:"font-display text-[15px] font-semibold tracking-[-0.01em] text-white",children:"River"})]})}const $e=["Platform","Resources","Docs","FAQ"];function Pe(){return e.jsx("header",{className:"sticky top-0 z-50 border-b border-white/[0.06] bg-[#090909]/80 backdrop-blur-xl",children:e.jsxs("div",{className:`${d} flex h-16 items-center gap-8`,children:[e.jsx(ne,{}),e.jsx("nav",{className:"hidden items-center gap-7 lg:flex",children:$e.map(t=>e.jsx("a",{className:"text-[13.5px] text-white/50 transition-colors hover:text-white/85",href:"#",children:t},t))}),e.jsxs("div",{className:"ms-auto flex items-center gap-3",children:[e.jsx("a",{className:"hidden text-[13.5px] text-white/50 transition-colors hover:text-white/85 sm:block",href:"#",children:"Sign in"}),e.jsxs("a",{className:`${R} ${U}`,href:"#cta",children:["Book a demo ",e.jsx(W,{size:14,weight:"bold"})]})]})]})})}const Re=[{market:"NYC high temperature today",leg:"Above 78°F",ticker:"KXHIGHNY-26MAY22-T78",position:"6,275 · $3,169",volume:"$16.5M",mid:.493,asks:[{price:.53,size:"70.0k",total:"1.66M"},{price:.51,size:"408.1k",mine:"200",total:"1.31M"},{price:.5,size:"898.2k",total:"898.2k"}],bids:[{price:.49,size:"39.0k",total:"39.0k"},{price:.48,size:"54.9k",mine:"500",total:"93.9k"},{price:.47,size:"250.0k",total:"343.9k"}]},{market:"Pro Basketball Champion",leg:"San Antonio",ticker:"KXNBA-26-SAS",position:"3,286 · $2,284",volume:"$25.2M",mid:.303,asks:[{price:.33,size:"184.3k",total:"914.8k"},{price:.32,size:"372.3k",total:"730.6k"},{price:.31,size:"358.2k",total:"358.2k"}],bids:[{price:.29,size:"350.4k",total:"350.4k"},{price:.28,size:"60.0k",total:"410.4k"},{price:.26,size:"205.3k",total:"615.7k"}]},{market:"Peru Presidential Election Winner",leg:"Roberto Sánchez Palomino, 2026",ticker:"will-roberto-snchez-palomino-win-2026",position:"+517 · $110",volume:"$12.7M",mid:.211,asks:[{price:.222,size:"316.0",mine:"50",total:"869.6"},{price:.22,size:"75.7",total:"553.6"},{price:.218,size:"361.0",total:"477.9"}],bids:[{price:.209,size:"84.0",mine:"25",total:"144.9"},{price:.207,size:"313.2",total:"458.1"},{price:.2,size:"60.9",total:"519.0"}]},{market:"Fed decision in Jun 2026?",leg:"Cut 25bps",ticker:"KXFEDDECISION-26JUN-C25",position:"800 · $780",volume:"$2.4M",mid:.026,asks:[{price:.05,size:"31.4k",mine:"1k",total:"351.3k"},{price:.04,size:"105.6k",total:"319.9k"},{price:.03,size:"214.3k",total:"214.3k"}],bids:[{price:.02,size:"114.6k",mine:"2k",total:"114.6k"},{price:.01,size:"638.2k",total:"752.8k"},{price:.005,size:"92.0",total:"844.8k"}]}];function Ce(t,s){const a=r=>r.endsWith("k")?parseFloat(r)*1e3:r.endsWith("M")?parseFloat(r)*1e6:parseFloat(r),i=Math.max(...s.map(r=>a(r.total)));return`${Math.max(4,a(t.total)/i*100)}%`}function ze({book:t}){const s=(a,i,r)=>{var c;return e.jsxs("div",{className:"relative flex items-center gap-2 px-2.5 py-[3px] text-[10.5px] tabular-nums",children:[e.jsx("span",{"aria-hidden":!0,
1className:"absolute inset-y-0 end-0",style:{width:Ce(a,r),background:i==="bid"?"color-mix(in srgb, var(--chart-up) 12%, transparent)":"color-mix(in srgb, var(--chart-down) 12%, transparent)"}}),e.jsx("span",{className:"relative w-10 font-medium",style:{color:i==="bid"?"var(--chart-up)":"var(--chart-down)"},children:a.price.toFixed(a.price<.1||((c=a.price.toString().split(".")[1])==null?void 0:c.length)===3?3:2)}),e.jsx("span",{className:"relative w-14 text-end text-white/45",children:a.size}),e.jsx("span",{className:"relative w-9 text-end text-white/80",children:a.mine??""}),e.jsx("span",{className:"relative ms-auto text-end text-white/30",children:a.total})]},`${i}-${a.price}`)};return e.jsxs("div",{className:"flex min-w-0 flex-col rounded-lg border border-white/[0.07] bg-white/[0.015]",children:[e.jsxs("div",{className:"flex items-start gap-2 border-b border-white/[0.06] px-2.5 py-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"truncate text-[11.5px] font-medium text-white/85",children:t.market}),e.jsx("p",{className:"truncate text-[10.5px] text-white/40",children:t.leg}),e.jsx("p",{className:"mt-1 truncate font-mono text-[9.5px] uppercase tracking-[0.04em] text-white/22",children:t.ticker})]}),e.jsxs("div",{className:"shrink-0 text-end",children:[e.jsx("p",{className:"text-[10.5px] tabular-nums text-white/55",children:t.position}),e.jsxs("p",{className:"text-[10px] tabular-nums text-white/28",children:[t.volume," vol"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 px-2.5 pb-1 pt-1.5 text-[9px] uppercase tracking-[0.08em] text-white/25",children:[e.jsx("span",{className:"w-10",children:"Price"}),e.jsx("span",{className:"w-14 text-end",children:"Size"}),e.jsx("span",{className:"w-9 text-end",children:"Mine"}),e.jsx("span",{className:"ms-auto",children:"Total"})]}),e.jsx("div",{className:"pb-1",children:t.asks.map(a=>s(a,"ask",t.asks))}),e.jsxs("div",{className:"my-1 flex items-center gap-2 border-y border-white/[0.05] bg-white/[0.02] px-2.5 py-1",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-[0.08em] text-white/30",children:"Mid"}),e.jsx("span",{className:"ms-auto text-[11px] font-medium tabular-nums text-white/70",children:t.mid.toFixed(3)})]}),e.jsx("div",{className:"pb-1.5",children:t.bids.map(a=>s(a,"bid",t.bids))})]})}function Te(){const[t,s]=P.useState("BUY"),a=t==="BUY"?"0.480":"0.500";return e.jsxs("div",{className:"flex flex-col gap-2.5 rounded-lg border border-white/[0.07] bg-white/[0.015] p-2.5",children:[e.jsx("p",{className:"text-[10px] uppercase tracking-[0.08em] text-white/30",children:"Place limit order"}),e.jsx("div",{className:"grid grid-cols-2 gap-1.5",children:["BUY","SELL"].map(i=>e.jsx("button",{className:"rounded-md border px-2 py-1.5 text-[11px] font-semibold transition-colors",onClick:()=>s(i),style:t===i?{borderColor:`color-mix(in srgb, ${i==="BUY"?"var(--chart-up)":"var(--chart-down)"} 45%, transparent)`,background:`color-mix(in srgb, ${i==="BUY"?"var(--chart-up)":"var(--chart-down)"} 14%, transparent)`,color:i==="BUY"?"var(--chart-up)":"var(--chart-down)"}:{borderColor:"rgba(255,255,255,0.07)",color:"rgba(255,255,255,0.35)"},type:"button",children:i},i))}),[["Price",a],["Qty","2,500"],["Expires","GTC"]].map(([i,r])=>e.jsxs("div",{className:"flex items-center justify-between rounded-md border border-white/[0.06] px-2 py-1.5",children:[e.jsx("span",{className:"text-[10.5px] text-white/35",children:i}),e.jsx("span",{className:"text-[11px] tabular-nums text-white/80",children:r})]},i)),e.jsxs("button",{className:`${R} w-full px-3 py-2 text-[11.5px]`,type:"button",children:["Place ",t.toLowerCase()," @ ",a]})]})}function Ae(){return e.jsxs("div",{className:"flex flex-col",style:{background:"var(--card)"},children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-white/[0.06] px-3 py-2",children:[e.jsx("span",{className:"font-mono text-[10.5px] text-white/30",children:"river / terminal / multi-book"}),e.jsxs("span",{className:"ms-2 inline-flex items-center gap-1.5 text-[10px] text-white/45",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:"var(--chart-up)"}}),"Live"]}),e.jsxs("span",{className:"ms-auto hidden items-center gap-2 rounded-md border border-white/[0.07] px-2 py-1 text-[10.5px] text-white/28 lg:flex",children:["Search markets or baskets… ",e.jsx("kbd",{className:"font-sans text-[9.5px] text-white/40",children:"⌘K"})]}),e.jsxs("span",{className:"ms-auto whitespace-nowrap text-[10.5px] tabular-nums text-white/40 lg:ms-2",children:[e.jsx("span",{className:"text-white/70",children:"28"})," orderbooks active"]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-2 p-2 sm:grid-cols-2 lg:grid-cols-[repeat(4,minmax(0,1fr))_170px]",children:[Re.map(t=>e.jsx(ze,{book:t},t.ticker)),e.jsx("div",{className:"hidden lg:block",children:e.jsx(Te,{})})]})]})}function _e(){return e.jsxs("section",{className:"relative overflow-hidden",children:[e.jsx(ve,{label:"river hero ridge",tune:"river-hero"}
1),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-[520px]",style:je}),e.jsx(be,{className:"text-[#9fd8e8]/55",label:"river hero wake",tune:"river-wake"}),e.jsx("div",{className:`${d} relative pb-20 pt-20 sm:pb-24 sm:pt-28`,children:e.jsxs("div",{className:"flex flex-col items-start gap-7",children:[e.jsx(l,{children:e.jsx(we,{label:"Seed",children:"Announcing our $8.5M round led by Haun Ventures"})}),e.jsx(k,{as:"h1",className:"max-w-[16ch]",children:e.jsx(y,{drive:"mount",children:"Prime brokerage for prediction markets."})}),e.jsx(l,{delay:.15,children:e.jsx(C,{className:"max-w-[54ch]",children:"One execution stack for hedge funds, prop desks and professional traders working across every prediction-market venue. Advanced execution, unified market data, consolidated positions and P&L."})}),e.jsxs(l,{className:"flex flex-wrap items-center gap-3",delay:.25,children:[e.jsxs("a",{className:`${R} ${F}`,href:"#cta",children:["Book a demo ",e.jsx(W,{size:15,weight:"bold"})]}),e.jsx("a",{className:`${q} ${F}`,href:"#api",children:"View documentation"})]})]})}),e.jsx("div",{className:`${d} relative`,children:e.jsx(l,{delay:.3,children:e.jsx(ke,{fadeBottom:!0,children:e.jsx(Ae,{})})})})]})}function Ie(){return e.jsxs("section",{className:`relative ${N.md}`,children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 overflow-hidden",style:{maskImage:"linear-gradient(to bottom, transparent 0%, black 24%, black 76%, transparent 100%), linear-gradient(to right, transparent 0%, transparent 56%, black 82%, black 100%)",WebkitMaskImage:"linear-gradient(to bottom, transparent 0%, black 24%, black 76%, transparent 100%), linear-gradient(to right, transparent 0%, transparent 56%, black 82%, black 100%)",maskComposite:"intersect",WebkitMaskComposite:"source-in"},children:e.jsx(Se,{className:"text-[#9fd8e8]/60"})}),e.jsxs("div",{className:`${d} relative`,children:[e.jsx(z,{children:"The platform"}),e.jsx(k,{className:"mt-5 max-w-[20ch]",children:e.jsx(y,{children:"The execution stack for prediction-market desks."})}),e.jsx(l,{delay:.1,children:e.jsx(C,{className:"mt-6 max-w-[62ch]",children:"River gives hedge funds, proprietary trading firms and professional traders one place to trade across prediction-market venues, with advanced execution, unified market data, and consolidated positions and P&L."})})]})]})}function se({id:t,eyebrow:s,head:a,sub:i,caps:r,aside:c,reverse:f=!1}){return e.jsxs("section",{className:`${d} ${N.md}`,id:t,children:[e.jsxs("div",{className:`grid grid-cols-1 gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.05fr)] lg:gap-16 ${f?"lg:[&>*:first-child]:order-2":""}`,children:[e.jsxs("div",{className:"lg:sticky lg:top-28 lg:self-start",children:[e.jsx(z,{children:s}),e.jsx(k,{className:"mt-5 max-w-[15ch]",children:e.jsx(y,{children:a})}),e.jsx(l,{delay:.1,children:e.jsx(C,{className:"mt-5 max-w-[46ch]",children:i})})]}),e.jsx("ul",{className:"flex flex-col",children:r.map((g,w)=>e.jsx(l,{delay:w*.05,children:e.jsxs("li",{className:"border-b border-white/[0.06] py-6 first:pt-0",children:[e.jsx("p",{className:"text-[16px] font-medium text-white sm:text-[17px]",children:g.title}),e.jsx("p",{className:"mt-2 max-w-[52ch] text-[14.5px] leading-[1.6] text-white/45",children:g.body})]})},g.title))})]}),c&&e.jsx(l,{className:"mt-16",delay:.1,children:c})]})}const Ee=[{title:"Multi-book view",body:"Work hundreds of orders at the same time. Place, modify and cancel directly from the book, with a 360° view of every market across every exchange."},{title:"Execution algos",body:"Native icebergs, pegs, take-profit and stop-loss, managed by River rather than the venue. Cancel the parent and everything unwinds."},{title:"Baskets and smart routing",body:"Matching contracts across exchanges, routing eligible orders to the best available price on connected venues and splitting fills where that improves it."},{title:"Unified OMS",body:"Place, edit and cancel across venues from one blotter. Positions, open orders, fill history and P&L attribution live in one place."},{title:"Subaccounts",body:"Isolate strategies, books or capital without opening new venue accounts. P&L is attributed per subaccount."}],Fe=[{title:"One id per contract",body:"Stop juggling exchange tickers. Trade and hold positions against river_id, a standardised numeric identifier for every contract on every venue."},{title:"Ed25519-signed requests",body:"Every REST call and WebSocket handshake is signed locally. Your private key never leaves the process."},{title:"Streams",body:"One socket each for books, orders and tradeprints. Subscribe to any number of river_ids on each."},{title:"Complex orders, server-managed",body:"Iceberg, peg and TP/SL run on River’s side. Child orders arrive on the orders socket grouped by parent id."},{title:"Official Python SDK",body:"Sync and async clients, fully typed, installed with pip. More languages on request."}];function K({value:t,label:s,basis:a}){return e.jsxs("div",{className:"border-s border-white/[0.09] ps-5",children:[e.jsx("p",{className:"font-display text-[38px] font-semibold leading-none tracking-[-0.03em] text-white sm:text-[44px]",children:t}),e.jsx("p",{className:"mt-2.5 text-[14px] text-white/60",children:s}),e.jsx("p",{className:"mt-1.5 text-[12px] leading-[1.55] text-white/28",children:a})]})}function Be(){return e.jsxs("section",{className:`${d} ${N.sm}`,children:[e.jsxs("div",{className:"grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(l,{children:e.jsx(K,{basis:"Mean of (best connected-venue price − 
1single-venue price) across eligible routed orders in the published case study, expressed in cents of contract price.",label:"average price improvement on routed orders",value:"2¢"})}),e.jsx(l,{delay:.08,children:e.jsx(K,{basis:"All-in cost of the worst venue route minus the best, over the same basket. All-in = spread crossed + venue fee + settlement, as a share of notional.",label:"cost gap between the cheapest and dearest venue route",value:"7%"})}),e.jsx(l,{delay:.16,children:e.jsx(K,{basis:"Total all-in execution cost as a share of traded notional for a desk routing to a single venue by hand, over the case-study period.",label:"of notional lost to routing by hand",value:"2.4%"})})]}),e.jsx(l,{delay:.24,children:e.jsxs("a",{className:"mt-10 inline-flex items-center gap-2 text-[14px] text-white/55 transition-colors hover:text-white",href:"#",children:["Read the case study these come from ",e.jsx(ie,{size:15,weight:"bold"})]})})]})}const ae={"place_order.py":{note:"pip install rivermarkets · Ed25519-signed, subaccount aware",lines:[[["from ","k"],["rivermarkets ","p"],["import ","k"],["RiverMarkets","p"]],[],[["client = ","p"],["RiverMarkets","p"],["(key_id=KEY_ID, private_key=PRIV)","p"]],[],[["# Same call, every market.","c"]],[["order = client.orders.","p"],["create_order","n"],["(","p"]],[["    subaccount_id=","p"],['"macro-book"',"s"],[",","p"]],[["    river_id=","p"],["4552150","n"],[",  ","p"],["# KXFEDDECISION-26JUN-C25","c"]],[["    order_type=","p"],['"LIMIT"',"s"],[", time_in_force=","p"],['"GTC"',"s"],[",","p"]],[["    buy_flag=","p"],["True","k"],[", price=","p"],["0.27","n"],[", qty=","p"],["100","n"],[",","p"]],[[")","p"]],[["print","n"],["(f","p"],['"resting → {order.river_order_id}"',"s"],[")","p"]]]},"iceberg.py":{note:"the parent lives on River · cancel it and every child unwinds",lines:[[["parent = client.orders.","p"],["create_iceberg","n"],["(","p"]],[["    river_id=","p"],["4552150","n"],[", buy_flag=","p"],["True","k"],[",","p"]],[["    price=","p"],["0.27","n"],[", qty=","p"],["25_000","n"],[", display_qty=","p"],["500","n"],[",","p"]],[[")","p"]],[],[["# Children arrive on the orders socket, grouped by parent.","c"]],[["client.orders.","p"],["cancel","n"],["(parent.river_order_id)","p"],["  # all unwind","c"]]]},"stream.py":{note:"one socket per concern · subscribe to any number of river_ids",lines:[[["async with","k"],[" client.streams.","p"],["books","n"],["() ","p"],["as","k"],[" books:","p"]],[["    ","p"],["await","k"],[" books.","p"],["subscribe","n"],["([","p"],["4552150","n"],[", ","p"],["9910432","n"],["])","p"]],[["    ","p"],["async for","k"],[" msg ","p"],["in","k"],[" books:","p"]],[["        ","p"],["print","n"],["(msg.river_id, msg.bids[","p"],["0","n"],["], msg.asks[","p"],["0","n"],["])","p"]]]}},Le={c:"text-white/25",k:"text-white/70",s:"text-[color:var(--chart-up)]",n:"text-white/85",p:"text-white/45"};function Oe(){const t=Object.keys(ae),[s,a]=P.useState(t[0]),i=ae[s];return e.jsxs(ye,{title:"river / api / unified order",children:[e.jsxs("div",{className:"flex items-center gap-1 border-b border-white/[0.06] px-2 py-1.5",children:[t.map(r=>e.jsx("button",{className:`rounded-md px-2.5 py-1 font-mono text-[11px] transition-colors ${s===r?"bg-white/[0.07] text-white/85":"text-white/35 hover:text-white/60"}`,onClick:()=>a(r),type:"button",children:r},r)),e.jsx("span",{className:"ms-auto pe-1 font-mono text-[10px] text-white/22",children:"v1"})]}),e.jsx("pre",{className:"overflow-x-auto px-4 py-4 font-mono text-[11.5px] leading-[1.85]",children:e.jsxs("code",{children:[e.jsx("span",{className:"text-white/25",children:`# ${i.note}
2`}),i.lines.map((r,c)=>e.jsxs("span",{children:[r.length===0?`
3`:null,r.map(([f,g],w)=>e.jsx("span",{className:Le[g],children:f},w)),r.length>0?`
4`:null]},c))]})})]})}const De=[{name:"Kalshi",state:"live"},{name:"Polymarket",state:"live"},{name:"Polymarket US",state:"live"},{name:"Novig",state:"soon"},{name:"Crypto.com",state:"soon"}];function Ye(){return e.jsx("section",{className:`${d} ${N.md}`,children:e.jsxs("div",{className:"grid grid-cols-1 gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.1fr)] lg:gap-16",children:[e.jsxs("div",{children:[e.jsx(fe,{className:"mb-7 -ms-2",label:"wave",size:132,spinFps:7,thing:"abs-wave",tune:"river-flow"}),e.jsx(z,{children:"Exchanges"}),e.jsx(k,{className:"mt-5 max-w-[14ch]",children:e.jsx(y,{children:"Trade the leading prediction-market venues."})}),e.jsx(l,{delay:.1,children:e.jsx(C,{className:"mt-5 max-w-[44ch]",children:"Live for trading and market data on Kalshi, Polymarket and Polymarket US. Novig and Crypto.com are in integration."})})]}),e.jsx("ul",{className:"flex flex-col gap-px overflow-hidden rounded-xl border border-white/[0.07]",children:De.map((t,s)=>e.jsx(l,{delay:s*.05,children:e.jsxs("li",{className:"flex items-center gap-4 border-b border-white/[0.06] bg-white/[0.015] px-5 py-4 last:border-b-0",children:[e.jsx("span",{className:"font-display text-[17px] font-medium text-white/85",children:t.name}),e.jsxs("span",{className:"ms-auto inline-flex items-center gap-2 text-[12.5px]",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:t.state==="live"?"var(--chart-up)":"rgba(255,255,255,0.22)"}}
4),e.jsx("span",{className:t.state==="live"?"text-white/60":"text-white/30",children:t.state==="live"?"Live · trading + data":"In integration"})]})]})},t.name))})]})})}const Ke=["Haun Ventures","Y Combinator","Tenet","UFO Holdings"];function Ue(){return e.jsx("section",{className:`${d} ${N.sm}`,children:e.jsxs("div",{className:"grid grid-cols-1 gap-10 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)] lg:items-center lg:gap-16",children:[e.jsxs("div",{children:[e.jsx(z,{children:"Investors"}),e.jsx("p",{className:"mt-5 max-w-[22ch] text-balance font-display text-[26px] font-semibold leading-[1.15] tracking-[-0.025em] text-white sm:text-[30px]",children:"Backed by leading venture firms and operators."})]}),e.jsx("ul",{className:"grid grid-cols-2 gap-x-8 gap-y-5",children:Ke.map((t,s)=>e.jsx(l,{delay:s*.04,children:e.jsx("li",{className:"font-display text-[15px] font-medium tracking-[-0.01em] text-white/38 transition-colors hover:text-white/70",children:t})},t))})]})})}const We=[["What is River Markets?","An execution and portfolio-management platform for prediction markets. It gives hedge funds, prop trading firms and professional traders one terminal and one API for trading across supported venues, with advanced execution, normalised market data and consolidated orders, positions and P&L."],["Who is it built for?","Desks that need professional execution, API access, multi-venue connectivity and consolidated portfolio visibility. It is most useful for teams that want to scale or automate trading without maintaining separate infrastructure for every venue."],["Which exchanges are supported?","Live for trading and market data on Kalshi, Polymarket and Polymarket US. Novig and Crypto.com are in integration."],["Does River hold customer funds?","No. The platform connects to customer-controlled accounts at supported exchanges. Funds stay in those venue accounts rather than being pooled in a River trading account."],["Can we use both the terminal and the API?","Yes. Traders can work the multi-book terminal, integrate through REST and WebSocket, or both. There is an official typed Python SDK with sync and async clients."],["Is there margin, custody or cross-venue netting?","Not today. The live platform covers execution, smart routing, market data, order management, positions and P&L across supported exchanges. Financing, collateral and custody requirements are handled case by case."]];function qe(){return e.jsx("section",{className:`${d} ${N.md}`,id:"faq",children:e.jsxs("div",{className:"grid grid-cols-1 gap-12 lg:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)] lg:gap-16",children:[e.jsxs("div",{className:"lg:sticky lg:top-28 lg:self-start",children:[e.jsx(z,{children:"Questions"}),e.jsx(k,{className:"mt-5 max-w-[12ch]",children:e.jsx(y,{children:"Frequently asked questions."})})]}),e.jsx("div",{className:"flex flex-col",children:We.map(([t,s])=>e.jsxs("details",{className:"group border-b border-white/[0.06] first:border-t",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-4 py-5 text-[15.5px] text-white/80 transition-colors marker:content-none hover:text-white [&::-webkit-details-marker]:hidden",children:[t,e.jsx("span",{"aria-hidden":!0,className:"ms-auto shrink-0 text-[18px] leading-none text-white/30 transition-transform duration-300 group-open:rotate-45",children:"+"})]}),e.jsx("p",{className:"max-w-[62ch] pb-6 text-[14.5px] leading-[1.65] text-white/45",children:s})]},t))})]})})}function Ge(){const t=P.useRef(null),s=re(),{scrollYProgress:a}=xe({offset:["start end","end start"],target:t}),i=he(a,[0,1],["70px","-70px"]);return e.jsxs("section",{className:"relative w-full overflow-hidden",id:"cta",ref:t,style:{background:`linear-gradient(to bottom, transparent 0%, ${Ne} 100%)`},children:[e.jsxs("div",{className:`${d} relative z-20 pb-[300px] pt-24 sm:pb-[340px] sm:pt-32`,children:[e.jsx(k,{className:"max-w-[16ch]",children:e.jsx(y,{children:"Spend your time on alpha. Not infra."})}),e.jsx(l,{delay:.1,children:e.jsx(C,{className:"mt-6 max-w-[48ch]",children:"Execution, routing, settlement and P&L, handled across every venue."})}),e.jsxs(l,{className:"mt-9 flex flex-wrap items-center gap-3",delay:.2,children:[e.jsxs("a",{className:`${R} ${F}`,href:"#",children:["Book a 30-minute demo ",e.jsx(W,{size:15,weight:"bold"})]}),e.jsx("a",{className:`${q} ${F}`,href:"#api",children:"Read the docs"})]})]}),e.jsx(ue.div,{className:"pointer-events-none absolute bottom-[-90px] left-0 right-0 z-[5] flex h-[300px] w-full select-none items-end sm:h-[360px] lg:h-[420px]",style:s?void 0:{y:i},children:e.jsx(ge,{className:"aspect-[2600/779] w-full",label:"river CTA ridge",preset:"rocks",src:Me,tune:"river-cta"})}
4),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 bottom-0 z-[6] h-[220px]",style:{background:"linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.6) 100%)"}})]})}const Ve=[["Product",["Platform","Documentation","Quickstart","Python SDK","Security"]],["Resources",["Blog","Research","Insights","Guides"]],["Company",["Careers","Contact","FAQ"]],["Legal",["Terms of service","Privacy policy"]]];function He(){return e.jsxs("footer",{className:"relative z-10 border-t border-white/[0.06] py-14",children:[e.jsxs("div",{className:`${d} grid grid-cols-2 gap-10 sm:grid-cols-3 lg:grid-cols-[minmax(0,1.4fr)_repeat(4,minmax(0,1fr))]`,children:[e.jsxs("div",{className:"col-span-2 sm:col-span-3 lg:col-span-1",children:[e.jsx(ne,{}),e.jsx("p",{className:"mt-4 max-w-[34ch] text-[13px] leading-[1.6] text-white/35",children:"Prime brokerage for prediction markets. One execution stack across every venue."})]}),Ve.map(([t,s])=>e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-white/30",children:t}),e.jsx("ul",{className:"mt-4 flex flex-col gap-2.5",children:s.map(a=>e.jsx("li",{children:e.jsx("a",{className:"text-[13.5px] text-white/45 transition-colors hover:text-white/80",href:"#",children:a})},a))})]},t))]}),e.jsx("div",{className:`${d} mt-12 border-t border-white/[0.06] pt-8`,children:e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",children:[e.jsxs("div",{className:"max-w-[52ch]",children:[e.jsx("p",{className:"text-[13px] font-medium text-white/70",children:"Unsolicited concept, built by Savva Sicevs."}),e.jsx("p",{className:"mt-2 text-[13px] leading-[1.6] text-white/40",children:"Your content and your claims, rebuilt in my system to show what the page could be. Every number on it prints how it is derived, the order book is a working component rather than a screenshot, and the whole thing runs in a browser. Not affiliated with River Markets, and every link here is inert."})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-3",children:[e.jsxs("a",{className:`${R} ${U}`,href:"https://ssych.com",rel:"noreferrer",target:"_blank",children:["ssych.com ",e.jsx(ie,{size:14,weight:"bold"})]}),e.jsx("a",{className:`${q} ${U}`,href:"https://ui.ssych.com",rel:"noreferrer",target:"_blank",children:"Component library"})]})]})})]})}function ot(){return e.jsxs("div",{className:"dark min-h-screen bg-[#090909] text-white antialiased",children:[e.jsx(Pe,{}),e.jsxs("main",{children:[e.jsx(_e,{}),e.jsx(Ie,{}),e.jsx(se,{caps:Ee,eyebrow:"Trading terminal",head:"Run a desk, not a browser tab.",sub:"Professional execution, position and P&L tooling, wired to every venue you trade."}),e.jsx(Be,{}),e.jsx(se,{aside:e.jsx(Oe,{}),caps:Fe,eyebrow:"Unified API",head:"One API for every venue you trade.",id:"api",sub:"Sign locally, place anywhere. REST and WebSockets, sync and async. Integrate once, not once per venue."}),e.jsx(Ye,{}),e.jsx(Ue,{}),e.jsx(qe,{}),e.jsx(Ge,{})]}),e.jsx(He,{})]})}export{ot as default};

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.