Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.
Starting August 7, 2026 at 00:00 UTC, use a 30-second TWAP for 5-minute markets and a 60-second TWAP for 15-minute and 4-hour markets. One-hour markets continue to use the default spot feed.
Market interval
Rust variant
Chainlink selection
5m
FiveMin
30 seconds
15m
FifteenMin
60 seconds
1h
Hourly
default spot feed
4h
FourHour
60 seconds
use polynode::{ Coin, PolyNodeClient, ShortFormInterval, ShortFormMessage,};#[tokio::main]async fn main() -> polynode::Result<()> { let client = PolyNodeClient::new( std::env::var("POLYNODE_API_KEY").expect("Set POLYNODE_API_KEY") )?; let mut stream = client .short_form(ShortFormInterval::FiveMin) .coins(&[Coin::Btc, Coin::Eth, Coin::Sol]) .start() .await?; while let Some(message) = stream.next().await { match message { ShortFormMessage::Rotation(rotation) => { println!("TWAP: {:?}", rotation.twap_window_seconds); for market in rotation.markets { println!( "{} {} {:?} {:?}", market.coin.id(), market.slug, market.chainlink_feed, market.price_to_beat, ); } } ShortFormMessage::PriceFeed(price) => println!("{price:?}"), ShortFormMessage::Event(event) => println!("{event:?}"), ShortFormMessage::Error(error) => eprintln!("{error}"), } } stream.stop().await; Ok(())}
At every boundary the helper closes its dedicated socket, opens a new one, and subscribes to the new identifiers and Chainlink selection. Consumers do not calculate the next slug manually, but should handle a normal connection transition around rotation.Supported assets are BTC, ETH, SOL, XRP, DOGE, HYPE, and BNB.For a manual Chainlink stream, combine feeds and twap_windows(vec![30, 60]) in one SubscriptionType::Chainlink subscription. One event socket can own one Chainlink selection; open another WsStream when selections must be isolated.Read the shared short-form guide for market fields, manual mode, and orderbook integration.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PolyNode","colors":{"primary":"#3b82f6","light":"#60a5fa","dark":"#2563eb"},"logo":{"light":"https://mintcdn.com/polynode/zluszUOhqmSDk1RK/images/logo-light.png?fit=max\u0026auto=format\u0026n=zluszUOhqmSDk1RK\u0026q=85\u0026s=fc49b798da5a361cb76f4733f13230dd","dark":"https://mintcdn.com/polynode/zluszUOhqmSDk1RK/images/logo-dark.png?fit=max\u0026auto=format\u0026n=zluszUOhqmSDk1RK\u0026q=85\u0026s=6d316edd9113e88a6c4e2973cc12438d"},"favicon":"https://mintcdn.com/polynode/zluszUOhqmSDk1RK/images/favicon.png?fit=max\u0026auto=format\u0026n=zluszUOhqmSDk1RK\u0026q=85\u0026s=0bf4f722dd9d5dddb849158b764adad4","api":{"playground":{}},"navbar":{"links":[{"href":"https://api.polynode.dev/v1/status","label":"API Status"}],"primary":{"type":"button","label":"Get API Key","href":"https://polynode.dev"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"polynode","hasAudioNarration":false,"actualSubdomain":"polynode","customDomains":["docs.polynode.dev"],"gitSource":{"type":"github","owner":"joinquantish","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6aec02b5baf429d562e676ed","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API Reference","count":245},{"language":"default","tag":"Query Catalog","count":67},{"language":"default","tag":"SDKs","count":51},{"language":"default","tag":"Guides","count":35},{"language":"default","tag":"Webhooks","count":26},{"language":"default","tag":"Changelog","count":23},{"language":"default","tag":"Archive","count":22},{"language":"default","tag":"WebSocket","count":21},{"language":"default","tag":"Perps Market Data","count":16},{"language":"default","tag":"Event Types","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"sdks/rust/short-form","slug":"/sdks/rust/short-form","pageMetadata":{"title":"Rust Short-Form and TWAP","sidebarTitle":"Short-Form \u0026 TWAP","description":"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.","icon":"clock","href":"/sdks/rust/short-form"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`Starting `,_jsx(_components.strong,{children:`August 7, 2026 at 00:00 UTC`}),`, use a 30-second TWAP for 5-minute markets and a 60-second TWAP for 15-minute and 4-hour markets. One-hour markets continue to use the default spot feed.`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Market interval`}),_jsx(_components.th,{children:`Rust variant`}),_jsx(_components.th,{children:`Chainlink selection`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`5m`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`FiveMin`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`30`}),` seconds`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`15m`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`FifteenMin`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`60`}),` seconds`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1h`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Hourly`})}),_jsx(_components.td,{children:`default spot feed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`4h`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`FourHour`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`60`}),` seconds`]})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`38`,language:`rust`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`rust`,children:_jsxs(_components.code,{language:`rust`,numberOfLines:`38`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` polynode`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Coin`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`PolyNodeClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ShortFormInterval`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ShortFormMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`#[tokio`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`main]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` fn`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` polynode`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Result`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c()> {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` PolyNodeClient`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` std`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`env`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`var`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"POLYNODE_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`expect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Set POLYNODE_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` mut`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`short_form`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`ShortFormInterval`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`FiveMin`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`coins`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Coin`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Btc`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Coin`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Eth`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Coin`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`Sol`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` while`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` let`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Some`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`next`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` match`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ShortFormMessage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Rotation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rotation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` println!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TWAP: {:?}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rotation`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`twap_window_seconds);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` market`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rotation`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`markets {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` println!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"{} {} {:?} {:?}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` market`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`coin`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` market`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`slug,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` market`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`chainlink_feed,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` market`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`price_to_beat,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` );`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ShortFormMessage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`PriceFeed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`price`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=>`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` println!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{price:?}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ShortFormMessage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=>`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` println!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{event:?}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ShortFormMessage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=>`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` eprintln!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{error}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stop`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Ok`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(())`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`At every boundary the helper closes its dedicated socket, opens a new one, and subscribes to the new identifiers and Chainlink selection. Consumers do not calculate the next slug manually, but should handle a normal connection transition around rotation.`}),`\n`,_jsx(_components.p,{children:`Supported assets are BTC, ETH, SOL, XRP, DOGE, HYPE, and BNB.`}),`\n`,_jsxs(_components.p,{children:[`For a manual Chainlink stream, combine feeds and `,_jsx(_components.code,{children:`twap_windows(vec![30, 60])`}),` in one `,_jsx(_components.code,{children:`SubscriptionType::Chainlink`}),` subscription. One event socket can own one Chainlink selection; open another `,_jsx(_components.code,{children:`WsStream`}),` when selections must be isolated.`]}),`\n`,_jsxs(_components.p,{children:[`Read the `,_jsx(_components.a,{href:`/sdks/short-form`,children:`shared short-form guide`}),` for market fields, manual mode, and orderbook integration.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Rust Short-Form and TWAP","sidebarTitle":"Short-Form \u0026 TWAP","description":"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.","icon":"clock","href":"/sdks/rust/short-form"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/polynode/0d40c5db9faacad8/slug-calculator.js"],"subdomain":"polynode","siteName":"PolyNode","title":"Rust Short-Form and TWAP - PolyNode","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-01T12:07:03.002Z","originalFileLocation":"sdks/rust/short-form.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\">\u003cmeta data-mint-head name=\"application-name\" content=\"PolyNode\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Rust Short-Form and TWAP - PolyNode\">\u003cmeta data-mint-head property=\"og:description\" content=\"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PolyNode\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.polynode.dev/sdks/rust/short-form\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://polynode.mintlify.site/_mintlify/api/og/v2?division=Rust\u0026amp;title=Rust+Short-Form+and+TWAP\u0026amp;description=Rotate+Rust+subscriptions+across+short-form+crypto+markets+with+the+correct+Chainlink+TWAP+window.\u0026amp;theme=121c1386b08658be3ccff004\u0026amp;signature=7aa4d2e9f20992846de625b46f3f3812cc089e0b2f7107efb44f6db428741ba6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Rust Short-Form and TWAP - PolyNode\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://polynode.mintlify.site/_mintlify/api/og/v2?division=Rust\u0026amp;title=Rust+Short-Form+and+TWAP\u0026amp;description=Rotate+Rust+subscriptions+across+short-form+crypto+markets+with+the+correct+Chainlink+TWAP+window.\u0026amp;theme=121c1386b08658be3ccff004\u0026amp;signature=7aa4d2e9f20992846de625b46f3f3812cc089e0b2f7107efb44f6db428741ba6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/polynode/nh0EcUVk_uYhjcGA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PolyNode\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b82f6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.polynode.dev/sdks/rust/short-form\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sdks/rust/short-form.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.polynode.dev/#organization\",\"name\":\"PolyNode\",\"url\":\"https://docs.polynode.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/polynode/zluszUOhqmSDk1RK/images/logo-light.png?fit=max\u0026auto=format\u0026n=zluszUOhqmSDk1RK\u0026q=85\u0026s=fc49b798da5a361cb76f4733f13230dd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.polynode.dev#website\",\"name\":\"PolyNode\",\"url\":\"https://docs.polynode.dev\",\"publisher\":{\"@id\":\"https://docs.polynode.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.polynode.dev/sdks/rust/short-form#webpage\",\"url\":\"https://docs.polynode.dev/sdks/rust/short-form\",\"name\":\"Rust Short-Form and TWAP\",\"description\":\"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\",\"dateModified\":\"2026-08-01T12:07:03.002Z\",\"isPartOf\":{\"@id\":\"https://docs.polynode.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.polynode.dev/sdks/rust/short-form#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.polynode.dev/sdks/rust/short-form#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Rust\",\"item\":\"https://docs.polynode.dev/sdks/rust/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rust Short-Form and TWAP\",\"item\":\"https://docs.polynode.dev/sdks/rust/short-form\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.polynode.dev/sdks/rust/short-form#article\",\"headline\":\"Rust Short-Form and TWAP\",\"name\":\"Rust Short-Form and TWAP\",\"description\":\"Rotate Rust subscriptions across short-form crypto markets with the correct Chainlink TWAP window.\",\"url\":\"https://docs.polynode.dev/sdks/rust/short-form\",\"mainEntityOfPage\":{\"@id\":\"https://docs.polynode.dev/sdks/rust/short-form#webpage\"},\"dateModified\":\"2026-08-01T12:07:03.002Z\",\"publisher\":{\"@id\":\"https://docs.polynode.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.polynode.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PolyNode\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PolyNode","nav":{"global":null,"tabs":[{"tab":"WebSocket","pages":[{"title":"WebSocket","href":"/websocket/overview"}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/webhooks/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Crypto Prices","pages":[{"title":"Crypto Prices","href":"/crypto/overview"}]},{"tab":"Orderbook","pages":[{"title":"Orderbook","href":"/orderbook/overview"}]},{"tab":"RPC","pages":[{"title":"RPC","href":"/rpc/overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"Trading","pages":[{"title":"Trading","href":"/sdks/trading"}]},{"tab":"SDKs","groups":[{"group":"Getting Started","pages":[{"title":"Polynode SDKs","sidebarTitle":"Overview","icon":"code","href":"/sdks/overview"}]},{"group":"Core Guides","pages":[{"title":"Complete V3 API","sidebarTitle":"V3 API","icon":"database","href":"/sdks/v3-api"},{"title":"Settlement and Event Streams","sidebarTitle":"Settlement Stream","icon":"bolt","href":"/sdks/websocket-streaming"},{"title":"Short-Form Markets and Chainlink TWAP","sidebarTitle":"Short-Form and TWAP","icon":"clock","href":"/sdks/short-form"},{"title":"Orderbook Streaming and PN1","sidebarTitle":"Orderbook and PN1","icon":"layer-group","href":"/sdks/orderbook"},{"title":"Perps WebSocket","sidebarTitle":"Perps Stream","icon":"chart-line","href":"/sdks/perps"},{"title":"Trading and Fees","sidebarTitle":"Trading \u0026 Fees","icon":"arrow-right-arrow-left","href":"/sdks/trading"},{"title":"User-owned execution","sidebarTitle":"User-owned execution","icon":"user-shield","href":"/sdks/user-owned-execution"},{"title":"Web app: connect wallet to an order","sidebarTitle":"Connect wallet to an order","icon":"browser","href":"/sdks/user-owned-web-app"}]},{"group":"Optional Helpers","pages":[{"title":"REST Clients","sidebarTitle":"REST Clients","icon":"globe","href":"/sdks/rest-api"},{"title":"Local Cache","sidebarTitle":"Local Cache","icon":"database","href":"/sdks/local-cache"},{"title":"Redemption Watcher","sidebarTitle":"Redemption Watcher","icon":"bell","href":"/sdks/redemption-watcher"},{"title":"RPC Helper","sidebarTitle":"RPC","icon":"plug","href":"/sdks/rpc"}]},{"group":"TypeScript","pages":[{"title":"TypeScript SDK","sidebarTitle":"Overview","icon":"js","href":"/sdks/ts/overview"},{"title":"TypeScript V3 API","sidebarTitle":"V3 API","icon":"database","href":"/sdks/ts/v3-data"},{"title":"TypeScript Settlement Stream","sidebarTitle":"Settlement Stream","icon":"bolt","href":"/sdks/ts/websocket"},{"title":"TypeScript Short-Form and TWAP","sidebarTitle":"Short-Form \u0026 TWAP","icon":"clock","href":"/sdks/ts/short-form"},{"title":"TypeScript PN1 Orderbook","sidebarTitle":"Orderbook \u0026 PN1","icon":"book-open","href":"/sdks/ts/orderbook"},{"title":"TypeScript Perps Stream","sidebarTitle":"Perps Stream","icon":"chart-line","href":"/sdks/ts/perps"},{"title":"TypeScript Trading and Fees","sidebarTitle":"Trading \u0026 Fees","icon":"arrow-right-arrow-left","href":"/sdks/ts/trading"},{"title":"TypeScript Configuration","sidebarTitle":"Configuration","icon":"sliders","href":"/sdks/ts/config"},{"title":"TypeScript Errors","sidebarTitle":"Errors","icon":"triangle-exclamation","href":"/sdks/ts/errors"},{"title":"TypeScript Types","sidebarTitle":"Types","icon":"shapes","href":"/sdks/ts/types"},{"title":"TypeScript REST Compatibility","sidebarTitle":"REST Compatibility","icon":"arrows-left-right","href":"/sdks/ts/rest-api"}]},{"group":"Python","pages":[{"title":"Python SDK","sidebarTitle":"Overview","icon":"python","href":"/sdks/python/overview"},{"title":"Python V3 API","sidebarTitle":"V3 API","icon":"database","href":"/sdks/python/v3-api"},{"title":"Python Settlement Stream","sidebarTitle":"Settlement Stream","icon":"bolt","href":"/sdks/python/websocket"},{"title":"Python Short-Form and TWAP","sidebarTitle":"Short-Form \u0026 TWAP","icon":"clock","href":"/sdks/python/short-form"},{"title":"Python PN1 Orderbook","sidebarTitle":"Orderbook \u0026 PN1","icon":"book-open","href":"/sdks/python/orderbook"},{"title":"Python Perps Stream","sidebarTitle":"Perps Stream","icon":"chart-line","href":"/sdks/python/perps"},{"title":"Python Trading and Fees","sidebarTitle":"Trading \u0026 Fees","icon":"arrow-right-arrow-left","href":"/sdks/python/trading"},{"title":"Python Configuration","sidebarTitle":"Configuration","icon":"sliders","href":"/sdks/python/config"},{"title":"Python Errors","sidebarTitle":"Errors","icon":"triangle-exclamation","href":"/sdks/python/errors"},{"title":"Python Models","sidebarTitle":"Models","icon":"shapes","href":"/sdks/python/models"},{"title":"Python REST Compatibility","sidebarTitle":"REST Compatibility","icon":"arrows-left-right","href":"/sdks/python/rest-api"}]},{"group":"Rust","pages":[{"title":"Rust SDK","sidebarTitle":"Overview","icon":"rust","href":"/sdks/rust/overview"},{"title":"Rust V3 API","sidebarTitle":"V3 API","icon":"database","href":"/sdks/rust/v3-api"},{"title":"Rust Settlement Stream","sidebarTitle":"Settlement Stream","description":"Consume acknowledged Rust settlement subscriptions with reconnect replay, deduplication, and bounded backpressure.","icon":"bolt","href":"/sdks/rust/websocket"},{"title":"Rust Short-Form and TWAP","sidebarTitle":"Short-Form \u0026 TWAP","icon":"clock","href":"/sdks/rust/short-form"},{"title":"Rust PN1 Orderbook","sidebarTitle":"Orderbook \u0026 PN1","description":"Maintain exact Rust orderbooks with PN1 sequence and checksum verification.","icon":"book-open","href":"/sdks/rust/orderbook"},{"title":"Rust Perps Stream","sidebarTitle":"Perps Stream","icon":"chart-line","href":"/sdks/rust/perps"},{"title":"Rust Trading and Fees","sidebarTitle":"Trading \u0026 Fees","icon":"arrow-right-arrow-left","href":"/sdks/rust/trading"},{"title":"Rust Configuration","sidebarTitle":"Configuration","icon":"sliders","href":"/sdks/rust/config"},{"title":"Rust Errors","sidebarTitle":"Errors","icon":"triangle-exclamation","href":"/sdks/rust/errors"},{"title":"Rust REST Compatibility","sidebarTitle":"REST Compatibility","icon":"arrows-left-right","href":"/sdks/rust/rest-api"}]},{"group":"Charts (Browser)","pages":[{"title":"Charts SDK","sidebarTitle":"Overview","icon":"chart-line","href":"/charts/overview"},{"title":"Getting Started","href":"/charts/getting-started"},{"title":"API Reference","href":"/charts/api-reference"},{"title":"Data Providers","sidebarTitle":"Data Providers","href":"/charts/data-providers"},{"title":"Live Streaming","href":"/charts/live-streaming"},{"title":"Examples","sidebarTitle":"Examples","href":"/charts/examples"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"Case Studies","pages":[{"title":"Case Studies","href":"/case-studies/overview"}]}]},"basePath":"","title":"Rust Short-Form and TWAP - PolyNode","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}