Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.
Housekeeping: Protocol 28 and Another Privacy Preview
Two links before the agenda. First: if you haven’t upgraded yet, do it now. Testnet is on Adapter (Protocol 28) as of this week — the testnet vote landed the same day as this call — and mainnet follows in a few weeks. Check the upgrade guide for what changed: faster consensus (CAP-83), externally managed contract executables (CAP-85), and sparse-map host functions for data migrations (CAP-86).Second: Stellar Private Payments is officially in developer preview. Deposit into a shared pool, transact inside it, withdraw — without publicly linking who paid whom. Fitting, because this week was a privacy call too.
This Week’s Guest: Moonlight
Moonlight Protocol (moonlightprotocol.io) is a privacy layer built on Stellar by The Aha Company. Their one-liner: it transforms each account into a constellation of unlinkable UTXOs, shielding balances and payments from public traceability. I’ll admit a bias — this might be my favorite privacy solution on Stellar — and it’s probably the single most requested topic from you all, so I was excited to have Chad and Gorka on. We waited for the room to fill (50+ at the start, close to 200 by the end) and handed Chad the stage.Introductions came late, because I assumed everyone already knows Chad. For the record: Chad Ostrowski is founder and now CTO of The Aha Company, which arrived about a year before Stellar had smart contracts and built a lot of the core developer tooling — Scaffold Stellar and Stellar Registry among them — plus stablecoin work for large global banks and a tokenized money market fund. A new passkey wallet is in the works too; more on that at Meridian. Gorka, a self-described digital nomad, has been the lead engineer on Moonlight for the past six months — the person actually in the guts of the protocol, and the one who made the UIs, stacks, and layers compose into something you can click.
Chad’s Tour: Compliant Privacy Without ZK
Chad’s framing: Moonlight is the privacy layer that makes public blockchains usable for regulated finance. It came directly from needs their banking partners kept raising. Banks want public blockchains — faster settlement, lower costs, new revenue models — but public is a deal breaker. Without privacy they can’t legally or competitively make the switch, so today they’re forced to choose between privacy and compliance. He showed a chart of privacy solutions getting blocked as regulation tightened: in blockchain, more regulation has meant less privacy, and MiCA makes it harder still. The problem is structural — pay with your public key and the cashier sees your balance and your full history — and regulatory needs differ per region. Privacy isn’t dead. We need compliant privacy.One thing Chad made explicit when a viewer asked: there is no zero-knowledge cryptography in Moonlight today. Turns out you don’t need it to build a privacy solution. ZK could add superpowers later (larger bundle sizes, for one), but there’s no immediate plan or need. If you’ve been following the confidential tokens and ZK conversations on this stream, note the contrast: this is a different design axis entirely.The four building blocks:
UTXOs (Pronounced “Ucho”)
Instead of accounts and balances, Moonlight uses the unspent transaction output model you know from Bitcoin and Cardano. Each payment consumes multiple UTXO inputs and creates multiple outputs, breaking the value trail. Entropy is tunable: fewer UTXOs for cheaper transactions, more for more privacy. Providers can bundle one-to-many or many-to-many transfers — Alice, Bob, Calvin, and David all tell their bank “send this,” the bank combines everything into one on-chain bundle and can mix in decoy UTXOs on top. Tailored bundling strategies also unlock new service models: mixers, paymasters, aggregators. Also, Gorka taught Chad to pronounce it “ucho,” a viewer asked whether that’s a bad word somewhere, Gorka swore it’s just a T and an X bundled together, and I’m adopting it.
Standardized Derivation
One master secret. Every Moonlight address derives from the same seed, which simplifies backups, keeps self-custody intact, and lets you migrate between wallets or providers with no loss of access and an unbroken privacy posture. No derivation data touches the chain, so observers can’t cluster addresses back to the master key. And while Stellar is the system of record, the incoming keypair could come from Ethereum, Cardano, Solana, or elsewhere.
Privacy Providers and Councils
The key concept. Every user onboards with a privacy provider — think bank, though it could be another financial institution or a wallet. The insight: users already trust these institutions with their private data, so Moonlight harnesses that model instead of fighting it. Providers run off-chain infrastructure (a Moonlight API service, KYC/AML) and on-chain infrastructure (an operation-executor wallet registered with a council contract). From the outside the UTXO graph is unintelligible; the provider has enough to see its own users and answer regulator audit requests. Providers also do the bundling.Providers self-govern through councils, grouped by regulatory region. Chad’s running example: two large US banks deploy a council contract; a third asks to join, and the members use their multisig to add its verified address. Users keep sovereignty — onboard with two providers in the same council and you can route one transaction through each, with your wallet living separately from both. Cross-border payments need a provider that operates, and answers to regulators, in both regions.
Privacy Channels
One smart contract per channel, one channel per asset. The council decides which assets to support and deploys a channel for each — USDC seems likely, a tokenized money market fund maybe, XLM who knows. Channels can carry extensions to bridge liquidity between channels and regions or connect directly to other on-chain applications.
The Testnet Dashboard
It’s live on testnet. Chad pulled up the network dashboard (linked from moonlightprotocol.io): 24 councils, including a seeded “US Banks” example with three providers, each with its public key and wallet-connect URL — the two things the browser wallet asks for at setup. We clicked into a bundled send from a seeded “EU bank” provider and looked at what an outsider sees: gobbledygook. A lot of uchos. The provider’s own dashboard would join those outputs to its KYC records; logged out, you get nothing. One gotcha from chat: the council testnet UI currently talks to Freighter directly, not through Stellar Wallets Kit.I said on the call that the council concept makes enormous sense to me — entities choosing which channels and assets to offer, per region, is how compliance actually works — and a few months after mainnet I’d love to see a long list of providers plugging institutions into this layer.
Gorka’s Demo: Alice, Bob, and 42 XLM
Two wallets side by side. Demo one, the low-level flow: Bob is the only one who can derive UTXOs from his secret key, so he generates a payment request — a very long string — and sends it to Alice. Alice has no channel balance yet, so she deposits 100 XLM into the privacy channel, then fulfills Bob’s request using only the information in his message. Bob refreshes: balance updated. Bob then withdraws back to his public account to show the round trip. A viewer asked whether the council validates these transactions — no, they’re regular Stellar transactions; the council only deploys channels and governs who may interact with them.Demo two is why this can actually ship to humans. Passing long strings around is “somewhat not the best user experience,” as Gorka put it. Since providers hold KYC data on their users, they can abstract that away: Alice logs into a provider UI and sends 42 XLM to “Bob” by name. The provider holds the amount for Bob until he claims it; his self-derived UTXOs stay out of the provider’s reach the whole time, and if he’s uneasy about anything held on his behalf he can sweep it into his own UTXOs immediately. Sovereignty preserved, friction removed.
Fifo Drops In
Fifo — Brazil-based, roughly six years in the Stellar ecosystem starting at Cheesecake Labs, about a year and a half at Aha — had been live-commenting the whole stream, so we pulled him on stage (video slightly squashed). Moonlight started as his garage project a couple of years ago; the original contracts were his alone before Chad and Gorka came in to find the problems and evolve the protocol. The origin story matches Chad’s: banking institutions saying “blockchain is great, but how do I onboard users without exposing my whole operation?” It’s still a moving target — every new business conversation surfaces another use case. Fifo also works with SDF on a program helping new partners past the common friction points of building on Stellar, so you may have met him already.
Q&A and How to Try It
A viewer asked for a flow diagram from sender to pool. There is one — it lives in the documentation produced during the recent Runtime Verification audit of the core contracts, whose public report is up. I offered Gorka a two-hour session walking through every diagram; the silence told me to schedule that another time. Spam us on Discord if you want it to happen.Elliot from our DevRel team had already spun up a council and a provider of his own and asked how to deposit. The order: deploy the council (the administering group), deploy a channel for one asset (think private pool), then deposit the first liquidity into it. You’ll need the browser wallet — build it from source and load it in dev mode in Chrome or Brave — or, being Elliot, call the contract directly. Everything is open source under github.com/Moonlight-Protocol: the browser wallet, the provider stack, and the UIs from the demo. The team’s explicit request is to go break it: create providers and councils, send private transactions, file what you find. There’s no bug bounty yet, just a very big thank-you — and please, no AI-generated low-severity reports; we’ve had that problem before.
Closing
Thanks to Chad, Gorka, and last-minute Fifo. Follow @theahaco on X — with 3,500 monthly active developers in this ecosystem, not knowing The Aha Company is on you — and go find bugs in Moonlight. See you next week.
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Stellar Developer Docs","colors":{"primary":"#6E56CF","light":"#9E8CFC","dark":"#5746AF"},"logo":{"light":"https://mintcdn.com/stellardevelopmentfoundation/hmWBKBicbGG4DTu6/logo/light.svg?fit=max\u0026auto=format\u0026n=hmWBKBicbGG4DTu6\u0026q=85\u0026s=8a00b2dfbc97a739a34cae5bce195900","dark":"https://mintcdn.com/stellardevelopmentfoundation/hmWBKBicbGG4DTu6/logo/dark.svg?fit=max\u0026auto=format\u0026n=hmWBKBicbGG4DTu6\u0026q=85\u0026s=b2a86569d59daaff5b90fac7f8998e27","href":"https://developers.stellar.org"},"favicon":{"light":"https://mintcdn.com/stellardevelopmentfoundation/hmWBKBicbGG4DTu6/favicon.png?fit=max\u0026auto=format\u0026n=hmWBKBicbGG4DTu6\u0026q=85\u0026s=28de029047b9a3eab8113ee2e529d345","dark":"https://mintcdn.com/stellardevelopmentfoundation/S3avpwtD4SHrU-0u/favicon-dark.png?fit=max\u0026auto=format\u0026n=S3avpwtD4SHrU-0u\u0026q=85\u0026s=780b125ab4e8da701ed13685a6833ab0"},"appearance":{"default":"light"},"background":{"color":{"light":"#fcfcfc","dark":"#161616"}},"navbar":{"primary":{"type":"button","label":"For agents","href":"#for-agents"}},"seo":{"metatags":{"canonical":"https://developers.stellar.org","og:image":"https://developers.stellar.org/brand/og-card.png","og:image:width":"1200","og:image:height":"630","og:image:alt":"Stellar Developers: build where money already moves around the world","twitter:card":"summary_large_image","twitter:image":"https://developers.stellar.org/brand/og-card.png"}},"fonts":{"family":"Inter"},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"integrations":{"gtm":{"tagId":"GTM-M2JLH37"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page doesn't exist or has moved. Try searching the docs, or start from the [homepage](/). As a last resort, check [legacydocs.stellar.org](https://legacydocs.stellar.org), an archived copy of the previous docs site that is no longer updated."}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity","grok","aistudio","devin","windsurf","mcp","cursor","vscode","devin-mcp","download-spec"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"users","href":"https://stellar.org/community"},{"anchor":"Blog","icon":"newspaper","href":"https://stellar.org/blog"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/zVYdY3ktTn"},{"anchor":"X","icon":"x-twitter","href":"https://twitter.com/StellarOrg"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@StellarDevelopmentFoundation"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stellardevelopmentfoundation","hasAudioNarration":false,"actualSubdomain":"stellardevelopmentfoundation","customDomains":["developers.stellar.org"],"gitSource":{"type":"github","owner":"stellar","repo":"stellar-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6ad90e5997846f200aac452e"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af7961face2dbc0a8a8ec5e","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API Reference","count":245},{"language":"default","tag":"Data","count":244},{"language":"default","tag":"Platforms","count":163},{"language":"default","tag":"Build","count":162},{"language":"default","tag":"APIs Overview","count":147},{"language":"default","tag":"Horizon","count":122},{"language":"default","tag":"Stellar Disbursement Platform","count":109},{"language":"default","tag":"Meetings","count":94},{"language":"default","tag":"Tools","count":87},{"language":"default","tag":"How-To Guides","count":82}],"searchSettings":{"fullPageSearch":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--stellar-accent: #7d73b2;--stellar-accent-hover: #6c629f;--stellar-accent-contrast: #ffffff;--stellar-accent-soft: rgba(125, 115, 178, 0.12);--stellar-accent-border: rgba(125, 115, 178, 0.24)}html.dark,html[data-theme=\"dark\"]{--stellar-accent: #ffda00;--stellar-accent-hover: #ffe34d;--stellar-accent-contrast: #0a0a0a;--stellar-accent-soft: rgba(255, 218, 0, 0.12);--stellar-accent-border: rgba(255, 218, 0, 0.24)}.stellar-hero-base{background:radial-gradient(circle at 16% 52%, rgba(125, 115, 178, 0.18) 0%, rgba(125, 115, 178, 0.08) 24%, rgba(255, 255, 255, 0) 56%),\n linear-gradient(180deg, #fcfbff 0%, #ffffff 56%, #f6f4ff 100%)}.stellar-hero-base-dark{background:radial-gradient(circle at 16% 52%, rgba(255, 218, 0, 0.12) 0%, rgba(255, 218, 0, 0.06) 24%, rgba(10, 10, 10, 0) 56%),\n linear-gradient(180deg, #040404 0%, #09090b 56%, #0f172a 100%)}.stellar-hero-wash-light{background:linear-gradient(90deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.74) 34%, rgba(255, 255, 255, 0.24) 68%, rgba(255, 255, 255, 0) 100%)}.stellar-hero-wash-dark{background:linear-gradient(90deg, rgba(2, 6, 23, 0.86) 0%, rgba(2, 6, 23, 0.68) 34%, rgba(2, 6, 23, 0.2) 68%, rgba(2, 6, 23, 0) 100%)}.stellar-accent-button{background-color:var(--stellar-accent);color:var(--stellar-accent-contrast)}.stellar-accent-button:hover{background-color:var(--stellar-accent-hover);color:var(--stellar-accent-contrast)}.stellar-accent-outline-button{border-color:rgba(23, 23, 23, 0.14);background-color:rgba(255, 255, 255, 0.7);color:#171717}.stellar-accent-outline-button:hover{border-color:var(--stellar-accent);background-color:var(--stellar-accent-soft);color:var(--stellar-accent)}html.dark .stellar-accent-outline-button,html[data-theme=\"dark\"] .stellar-accent-outline-button{border-color:rgba(255, 255, 255, 0.2);background-color:rgba(255, 255, 255, 0.05);color:#ffffff}.stellar-accent-panel{border:1px solid var(--stellar-accent-border);background:linear-gradient(90deg, rgba(125, 115, 178, 0.16) 0%, #ffffff 52%, rgba(125, 115, 178, 0.06) 100%)}html.dark .stellar-accent-panel,html[data-theme=\"dark\"] .stellar-accent-panel{background:linear-gradient(90deg, rgba(255, 218, 0, 0.1) 0%, #0a0a0a 52%, #0f172a 100%)}@media (max-width: 767px){.stellar-hero-wash-light{background:linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.82) 38%, rgba(255, 255, 255, 0.64) 100%)}.stellar-hero-wash-dark{background:linear-gradient(180deg, rgba(2, 6, 23, 0.88) 0%, rgba(2, 6, 23, 0.78) 38%, rgba(2, 6, 23, 0.62) 100%)}.stellar-accent-panel{background:linear-gradient(180deg, rgba(125, 115, 178, 0.14) 0%, #ffffff 46%, rgba(125, 115, 178, 0.06) 100%)}html.dark .stellar-accent-panel,html[data-theme=\"dark\"] .stellar-accent-panel{background:linear-gradient(180deg, rgba(255, 218, 0, 0.1) 0%, #0a0a0a 46%, #0f172a 100%)}}div:has(>ul>li>a.nav-anchor){display:flex;flex-direction:column}ul:has(>li>a.nav-anchor){order:99;margin-top:auto;padding-top:1rem;border-top:1px solid rgba(125, 115, 178, 0.24)}div:has(>ul>li>a.nav-anchor)>div.mt-6{margin-top:0}#navigation-items>div.pt-6{padding-top:0.5rem}#navigation-items [data-component-part=\"scroll-area-content\"]{min-height:100%;display:flex;flex-direction:column}#navigation-items [data-component-part=\"scroll-area-content\"]>div{flex:1}.callout{--Notification-bg: var(--sds-clr-lilac-01);--Notification-border: var(--sds-clr-lilac-06);--Notification-icon: var(--sds-clr-lilac-09);--Notification-svg: url(\"/img/sds-icons/icons-info-circle.svg\");font-family:var(--sds-ff-base);background-color:var(--Notification-bg)!important;border:1px solid var(--Notification-border)!important;border-radius:0.5rem!important;padding:0.75rem!important;gap:0.75rem!important;color:var(--sds-clr-gray-11);font-size:0.875rem;line-height:1.25rem}.callout[data-callout-type=\"tip\"],.callout[data-callout-type=\"check\"]{--Notification-bg: var(--sds-clr-green-01);--Notification-border: var(--sds-clr-green-06);--Notification-icon: var(--sds-clr-green-09);--Notification-svg: url(\"/img/sds-icons/icons-check-circle.svg\")}.callout[data-callout-type=\"warning\"]{--Notification-bg: var(--sds-clr-amber-01);--Notification-border: var(--sds-clr-amber-06);--Notification-icon: var(--sds-clr-amber-09);--Notification-svg: url(\"/img/sds-icons/icons-alert-triangle.svg\")}.callout[data-callout-type=\"danger\"]{--Notification-bg: var(--sds-clr-red-01);--Notification-border: var(--sds-clr-red-06);--Notification-icon: var(--sds-clr-red-09);--Notification-svg: url(\"/img/sds-icons/icons-alert-circle.svg\")}[data-component-part=\"callout-icon\"]{width:1rem!important;margin-top:0.125rem!important}[data-component-part=\"callout-icon\"] svg{display:none}[data-component-part=\"callout-icon\"]::before{content:\"\";display:block;width:1rem;height:1rem;background-color:var(--Notification-icon);-webkit-mask:var(--Notification-svg) no-repeat center / contain;mask:var(--Notification-svg) no-repeat center / contain}#page-context-menu-button svg{display:none}#page-context-menu-button>div::before{content:\"\";display:block;width:1rem;height:1rem;flex-shrink:0;background-color:var(--sds-clr-gray-09);-webkit-mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain}#page-context-menu>button{height:2.25rem!important;padding:0.5rem 0.75rem!important;font-family:var(--sds-ff-base);font-size:0.875rem!important;line-height:1.25rem!important;font-weight:600!important;color:var(--sds-clr-gray-12)!important;background-color:var(--sds-clr-gray-01)!important;border:1px solid var(--sds-clr-gray-06)!important;transition:background-color var(--sds-anim-transition-default),\n border-color var(--sds-anim-transition-default)}#page-context-menu>button:hover{background-color:var(--sds-clr-gray-04)!important;border-color:var(--sds-clr-gray-07)!important}#page-context-menu-button>div{gap:0.25rem!important}#page-context-menu-button{border-radius:0.5rem 0 0 0.5rem!important;border-right:1px solid var(--sds-clr-gray-06)!important;margin-right:-1px;position:relative;z-index:1}#page-context-menu>button:last-child{width:2.25rem!important;padding:0!important;justify-content:center;border-radius:0 0.5rem 0.5rem 0!important;border-left:1px solid var(--sds-clr-gray-06)!important}#pagination a{border:0!important;border-radius:0!important;padding:0!important}#pagination a:hover [data-component-part=\"pagination-title\"]{color:var(--sds-clr-lilac-11)!important}[data-testid=\"copy-code-button\"] svg{display:none}[data-testid=\"copy-code-button\"]::before{content:\"\";display:block;width:1rem;height:1rem;background-color:var(--sds-clr-gray-09);-webkit-mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain}[data-testid=\"copy-code-button\"]:hover::before{background-color:var(--sds-clr-gray-11)}[data-testid=\"copy-code-button\"]:has(>svg.text-primary)::before{background-color:var(--sds-clr-lilac-09);-webkit-mask-image:url(\"/img/sds-icons/icons-check.svg\");mask-image:url(\"/img/sds-icons/icons-check.svg\")}#pagination a>div{display:flex;flex-direction:column-reverse;gap:0.25rem}#pagination a>div>*{margin:0!important}#content-container>div.flex-1{display:flex;flex-direction:column}#content-area{display:flex;flex-direction:column;flex:1}#footer{margin-top:auto;padding-top:0!important;padding-bottom:2rem!important;border-top:0!important}a[data-component-name=\"primary-header-button\"]{height:2rem;padding:0.375rem 0.625rem!important;gap:0.25rem;font-size:0.875rem!important;line-height:1.375rem;font-weight:var(--sds-fw-semi-bold)!important;color:var(--sds-clr-gray-12)!important;background-color:var(--sds-clr-gray-01)!important;border:1px solid var(--sds-clr-gray-06);border-color:var(--sds-clr-gray-06)!important;border-radius:0.375rem!important;box-shadow:none!important;opacity:1!important}a[data-component-name=\"primary-header-button\"]:hover{background-color:var(--sds-clr-gray-04)!important;border-color:var(--sds-clr-gray-07)!important}a[data-component-name=\"primary-header-button\"]::before{content:\"\\2726\";font-size:0.75rem;color:var(--sds-clr-gray-09)}#for-agents-panel{position:fixed;top:calc(3rem + var(--banner-height, 0px));right:0;bottom:0;width:min(26rem, 100vw);z-index:40;display:flex;flex-direction:column;font-family:var(--sds-ff-base);color:var(--sds-clr-gray-12);background-color:var(--sds-clr-gray-01);border:1px solid var(--sds-clr-gray-06);border-radius:0;border-width:0 0 0 1px;box-shadow:-8px 0 24px rgba(0, 0, 0, 0.06);overflow:hidden;animation:fa-slide-in 180ms ease-out}@keyframes fa-slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}#for-agents-panel[hidden]{display:none}.fa-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--sds-clr-gray-06)}.fa-title{font-size:0.875rem;line-height:1.25rem;color:var(--sds-clr-gray-11)}.fa-close{width:1.5rem;height:1.5rem;border:0;background:var(--sds-clr-gray-09);-webkit-mask:url(\"/img/sds-icons/icons-x-close.svg\") no-repeat center / 1rem;mask:url(\"/img/sds-icons/icons-x-close.svg\") no-repeat center / 1rem;cursor:pointer}.fa-close:hover{background:var(--sds-clr-gray-12)}.fa-body{overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem}.fa-picker-label,.fa-section-title{display:block;margin:0 0 0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-12)}.fa-pills{display:flex;flex-wrap:wrap;gap:0.5rem}.fa-pill{height:1.625rem;padding:0.25rem 0.625rem;font-family:inherit;font-size:0.75rem;line-height:1.125rem;font-weight:var(--sds-fw-semi-bold);color:var(--sds-clr-gray-12);background-color:var(--sds-clr-gray-01);border:1px solid var(--sds-clr-gray-06);border-radius:9999px;cursor:pointer;transition:background-color var(--sds-anim-transition-default), border-color var(--sds-anim-transition-default)}.fa-pill:hover{background-color:var(--sds-clr-gray-04);border-color:var(--sds-clr-gray-07)}.fa-pill.is-active{color:var(--sds-clr-base-00);background-color:var(--sds-clr-gray-12);border-color:var(--sds-clr-gray-12)}.fa-section{display:flex;flex-direction:column;gap:0.5rem;padding-top:1.25rem;border-top:1px solid var(--sds-clr-gray-06)}.fa-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem}.fa-section-head .fa-section-title{margin:0}.fa-desc,.fa-note{margin:0;font-size:0.875rem;line-height:1.25rem;color:var(--sds-clr-gray-11)}.fa-note{font-size:0.75rem;line-height:1.125rem}.fa-link{display:inline-flex;align-items:center;gap:0.125rem;font-size:0.875rem;line-height:1.25rem;font-weight:var(--sds-fw-medium);color:var(--sds-clr-lilac-11);text-decoration:none;white-space:nowrap;transition:color var(--sds-anim-transition-default)}.fa-link:hover{color:var(--sds-clr-lilac-12);text-decoration:none}.fa-link>span{display:none}.fa-link::after{content:\"\";display:block;width:1rem;height:1rem;background-color:currentColor;-webkit-mask:url(\"/img/sds-icons/icons-arrow-right.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-arrow-right.svg\") no-repeat center / contain}.fa-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:0.25rem}.fa-copy{position:relative;border:1px solid var(--sds-clr-gray-06);border-radius:0.375rem;background-color:var(--sds-clr-gray-02)}.fa-code{margin:0;padding:0.625rem 2.5rem 0.625rem 0.75rem;font-family:var(--sds-ff-monospace);font-size:0.8125rem;line-height:1.25rem;color:var(--sds-clr-gray-12);white-space:pre-wrap;word-break:break-all}.fa-copy-btn{position:absolute;top:0.375rem;right:0.375rem;width:1.75rem;height:1.75rem;border:0;border-radius:0.375rem;background:transparent;cursor:pointer}.fa-copy-btn:hover{background:var(--sds-clr-gray-04)}.fa-copy-btn::before{content:\"\";display:block;width:1rem;height:1rem;margin:auto;background-color:var(--sds-clr-gray-09);-webkit-mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-copy-01.svg\") no-repeat center / contain}.fa-copy-btn.is-copied::before{background-color:var(--sds-clr-lilac-09);-webkit-mask-image:url(\"/img/sds-icons/icons-check.svg\");mask-image:url(\"/img/sds-icons/icons-check.svg\")}#body-content .code-block{background-color:var(--sds-clr-gray-02)!important}#body-content [data-component-part=\"code-block-header-filename\"]{font-family:var(--sds-ff-base);color:var(--sds-clr-gray-11)}#navbar .bg-gray-50{background-color:var(--sds-clr-gray-02)!important}#navigation-items svg.transition-transform{width:1rem;height:1rem;margin-right:0;color:var(--sds-clr-gray-09);background-color:currentColor;-webkit-mask:url(\"/img/sds-icons/icons-chevron-right.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-chevron-right.svg\") no-repeat center / contain}#navigation-items svg.transition-transform>path{display:none}[role=\"menu\"] [role=\"menuitem\"] .font-medium>svg{width:0.875rem;height:0.875rem;color:var(--sds-clr-gray-09);background-color:currentColor;-webkit-mask:url(\"/img/sds-icons/icons-arrow-up-right.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-arrow-up-right.svg\") no-repeat center / contain}[role=\"menu\"] [role=\"menuitem\"] .font-medium>svg>path{display:none}[data-component-part=\"pagination-chevron\"]{width:1rem;height:1rem;color:var(--sds-clr-gray-09);background-color:currentColor;-webkit-mask:url(\"/img/sds-icons/icons-chevron-right.svg\") no-repeat center / contain;mask:url(\"/img/sds-icons/icons-chevron-right.svg\") no-repeat center / contain}[data-component-part=\"pagination-chevron\"]>path{display:none}.pagination-prev [data-component-part=\"pagination-chevron\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-chevron-left.svg\");mask-image:url(\"/img/sds-icons/icons-chevron-left.svg\");transform:none}#navigation-items a[aria-current],#navigation-items [data-active=\"true\"]>button,#navigation-items button.text-primary,#table-of-contents a[aria-current]{font-weight:var(--sds-fw-semi-bold)!important}#navigation-items button,#navigation-items a{text-shadow:none!important}#navigation-items a[aria-current],#navigation-items [data-active=\"true\"]>div,#navigation-items .text-primary,#table-of-contents a[aria-current],#table-of-contents .text-primary,[data-component-part=\"pagination-title\"]{color:var(--sds-clr-lilac-11)!important}#navbar .nav-tabs-item[aria-current=\"location\"]{color:var(--sds-clr-gray-12)!important;text-shadow:none!important;font-weight:var(--sds-fw-semi-bold)!important}#navbar .nav-tabs-item[aria-current=\"location\"]>div.bg-primary{background-color:var(--sds-clr-gray-12)!important}body:has(.stellar-hero-base) #navbar .nav-tabs-item[aria-current=\"location\"]{color:rgb(var(--gray-600))!important;font-weight:500!important}body:has(.stellar-hero-base) #navbar .nav-tabs-item[aria-current=\"location\"]:hover{color:rgb(var(--gray-800))!important}html.dark body:has(.stellar-hero-base) #navbar .nav-tabs-item[aria-current=\"location\"]{color:rgb(var(--gray-400))!important}html.dark body:has(.stellar-hero-base) #navbar .nav-tabs-item[aria-current=\"location\"]:hover{color:rgb(var(--gray-300))!important}body:has(.stellar-hero-base) #navbar .nav-tabs-item[aria-current=\"location\"]>div.bg-primary{display:none}"},{"filePath":"sds-components.css","content":"#body-content .callout{--sds-n-bg: var(--sds-clr-lilac-01);--sds-n-border: var(--sds-clr-lilac-06);--sds-n-icon: var(--sds-clr-lilac-09);--sds-n-action: var(--sds-clr-lilac-11);background-color:var(--sds-n-bg);border:1px solid var(--sds-n-border);border-radius:0.5rem;padding:0.75rem;gap:0.75rem;color:var(--sds-clr-gray-11);font-size:0.875rem;line-height:1.25rem}#body-content .callout[data-callout-type=\"note\"]{--sds-n-bg: var(--sds-clr-gray-01);--sds-n-border: var(--sds-clr-gray-06);--sds-n-icon: var(--sds-clr-gray-09);--sds-n-action: var(--sds-clr-gray-12)}#body-content .callout[data-callout-type=\"tip\"],#body-content .callout[data-callout-type=\"check\"]{--sds-n-bg: var(--sds-clr-green-01);--sds-n-border: var(--sds-clr-green-06);--sds-n-icon: var(--sds-clr-green-09);--sds-n-action: var(--sds-clr-green-11)}#body-content .callout[data-callout-type=\"warning\"]{--sds-n-bg: var(--sds-clr-amber-01);--sds-n-border: var(--sds-clr-amber-06);--sds-n-icon: var(--sds-clr-amber-09);--sds-n-action: var(--sds-clr-amber-11)}#body-content .callout[data-callout-type=\"danger\"]{--sds-n-bg: var(--sds-clr-red-01);--sds-n-border: var(--sds-clr-red-06);--sds-n-icon: var(--sds-clr-red-09);--sds-n-action: var(--sds-clr-red-11)}#body-content .callout [data-component-part=\"callout-icon\"]{margin-top:0.125rem;width:1rem}#body-content .callout [data-component-part=\"callout-icon\"] svg{color:var(--sds-n-icon);width:1rem;height:1rem}#body-content .callout [data-component-part=\"callout-content\"],#body-content .callout [data-component-part=\"callout-content\"] p,#body-content .callout [data-component-part=\"callout-content\"] li{color:var(--sds-clr-gray-11);font-size:0.875rem;line-height:1.25rem}#body-content .callout [data-component-part=\"callout-content\"] strong{color:var(--sds-clr-gray-12);font-weight:var(--sds-fw-medium)}#body-content .callout [data-component-part=\"callout-content\"] a{color:var(--sds-n-action);font-weight:var(--sds-fw-medium);text-decoration:none;border-bottom:0}#body-content .callout [data-component-part=\"callout-content\"] a:hover{text-decoration:underline}#body-content .card{background-color:var(--sds-clr-gray-01);border:1px solid var(--sds-clr-gray-06);border-radius:0.5rem;box-shadow:none;transition:border-color var(--sds-anim-transition-default)}#body-content .card:hover{border-color:var(--sds-clr-gray-08)!important}#body-content .card [data-component-part=\"card-content-container\"]{padding:1.5rem}#body-content .card [data-component-part=\"card-icon\"]{width:1.25rem;height:1.25rem}#body-content .card [data-component-part=\"card-icon\"] svg{width:1.25rem;height:1.25rem;color:var(--sds-clr-gray-12)}#body-content .card [data-component-part=\"card-icon\"] svg[style*=\"mask-image\"]{background-color:var(--sds-clr-gray-12)}#body-content .card [data-component-part=\"card-title\"]{font-size:1rem;line-height:1.5rem;font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-12);margin-top:0.75rem}#body-content .card [data-component-part=\"card-content\"],#body-content .card [data-component-part=\"card-content\"] p{font-size:0.875rem;line-height:1.25rem;color:var(--sds-clr-gray-11);margin-top:0.25rem}#body-content .card [data-component-part=\"card-cta\"]{color:var(--sds-clr-lilac-11);font-weight:var(--sds-fw-medium);font-size:0.875rem}#body-content [data-badge]{--sds-b-text: var(--sds-clr-gray-12);--sds-b-bg: var(--sds-clr-gray-01);--sds-b-border: var(--sds-clr-gray-06);display:inline-flex;align-items:center;gap:0.125rem;font-family:var(--sds-ff-base);font-size:0.875rem;line-height:1.25rem;font-weight:var(--sds-fw-medium);letter-spacing:0;padding:0.125rem 0.5rem;border-radius:6.25rem;border:1px solid var(--sds-b-border);background-color:var(--sds-b-bg);color:var(--sds-b-text)}#body-content [data-badge][data-color=\"blue\"],#body-content [data-badge][data-color=\"purple\"]{--sds-b-text: var(--sds-clr-lilac-11);--sds-b-bg: var(--sds-clr-lilac-02);--sds-b-border: var(--sds-clr-lilac-06)}#body-content [data-badge][data-color=\"green\"]{--sds-b-text: var(--sds-clr-green-11);--sds-b-bg: var(--sds-clr-green-02);--sds-b-border: var(--sds-clr-green-06)}#body-content [data-badge][data-color=\"red\"]{--sds-b-text: var(--sds-clr-red-11);--sds-b-bg: var(--sds-clr-red-02);--sds-b-border: var(--sds-clr-red-06)}#body-content [data-badge][data-color=\"yellow\"],#body-content [data-badge][data-color=\"orange\"],#body-content [data-badge][data-color=\"amber\"]{--sds-b-text: var(--sds-clr-amber-11);--sds-b-bg: var(--sds-clr-amber-02);--sds-b-border: var(--sds-clr-amber-06)}#body-content [data-badge][data-color=\"gray\"],#body-content [data-badge][data-color=\"grey\"]{--sds-b-text: var(--sds-clr-gray-11);--sds-b-bg: var(--sds-clr-gray-03);--sds-b-border: var(--sds-clr-gray-06)}#body-content .tabs [data-component-part=\"tabs-list\"]{border-bottom-color:var(--sds-clr-gray-06);gap:1.5rem}#body-content .tabs [data-component-part=\"tab-button\"]{font-size:var(--sds-fs-secondary);font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-11);border-bottom:2px solid transparent;padding-top:0.5rem;padding-bottom:0.625rem}#body-content .tabs [data-component-part=\"tab-button\"]:hover{color:var(--sds-clr-gray-12);border-bottom-color:var(--sds-clr-gray-06)}#body-content .tabs [data-component-part=\"tab-button\"][data-active=\"true\"]{color:var(--sds-clr-gray-12);border-bottom-color:var(--sds-clr-lilac-09)}#body-content .code-group{border-radius:0.5rem;border-color:var(--sds-clr-gray-06);background-color:var(--sds-clr-gray-02)}#body-content .code-group [role=\"tab\"]{font-family:var(--sds-ff-base);font-size:0.75rem;font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-11)}#body-content .code-group [role=\"tab\"][data-active],#body-content .code-group [role=\"tab\"][aria-selected=\"true\"]{color:var(--sds-clr-gray-12)}#body-content .code-group [role=\"tab\"] .bg-primary{background-color:var(--sds-clr-lilac-09)}#body-content .code-block,#body-content .code-group{border-radius:0.5rem;border-color:var(--sds-clr-gray-06);overflow:hidden}#body-content .code-block [data-component-part=\"code-block-root\"],#body-content .code-group [data-component-part=\"code-block-root\"]{border-radius:inherit}#body-content .code-group .code-block{border:0;border-radius:0}#body-content .code-group{--rounded-xl: 0.5rem}html.dark #body-content .code-block-background{background-color:var(--sds-clr-gray-02)!important}#body-content [data-fade-overlay]{--fade-color-dark: var(--sds-clr-gray-02) !important}#body-content .accordion,#body-content .accordion-group{border-radius:0.5rem;border-color:var(--sds-clr-gray-06);background-color:var(--sds-clr-gray-01)}#body-content .accordion [data-component-part=\"accordion-button\"]{padding:0.875rem 1rem}#body-content .accordion [data-component-part=\"accordion-button\"]:hover{background-color:var(--sds-clr-gray-02)}#body-content .accordion [data-component-part=\"accordion-title\"],#body-content .accordion [data-component-part=\"accordion-title\"] strong{color:var(--sds-clr-gray-12);font-size:var(--sds-fs-secondary);font-weight:var(--sds-fw-medium)}#body-content .accordion [data-component-part=\"accordion-caret-right\"] svg{color:var(--sds-clr-gray-09)}#body-content details.expandable{border-radius:0.5rem;border-color:var(--sds-clr-gray-06)}#body-content [data-component-part=\"expandable-button\"]{color:var(--sds-clr-gray-11);font-size:var(--sds-fs-secondary);font-weight:var(--sds-fw-medium)}#body-content [data-component-part=\"expandable-button\"]:hover{color:var(--sds-clr-gray-12);background-color:var(--sds-clr-gray-02)}#body-content [data-component-part=\"expandable-content\"]{border-top-color:var(--sds-clr-gray-04)}#body-content .primitive-param-field{border-bottom-color:var(--sds-clr-gray-04)}#body-content [data-component-part=\"field-name\"]{color:var(--sds-clr-gray-12);font-family:var(--sds-ff-monospace);font-weight:var(--sds-fw-medium)}#body-content [data-component-part=\"field-info-pill\"],#body-content [data-component-part=\"field-required-pill\"]{font-family:var(--sds-ff-base);font-size:0.75rem;line-height:1.125rem;font-weight:var(--sds-fw-medium);padding:0.125rem 0.375rem;border-radius:6.25rem;border:1px solid var(--sds-clr-gray-06);background-color:var(--sds-clr-gray-03);color:var(--sds-clr-gray-11)}#body-content [data-component-part=\"field-required-pill\"]{border-color:var(--sds-clr-lilac-06);background-color:var(--sds-clr-lilac-02);color:var(--sds-clr-lilac-11)}#body-content pre code,#body-content pre{font-size:0.9375rem}#body-content .callout [data-component-part=\"callout-content\"] a{-webkit-text-fill-color:var(--sds-n-action);text-decoration-color:var(--sds-n-action)}"},{"filePath":"sds-elements.css","content":"/* vietnamese */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyxq15Mjs.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyx615Mjs.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 400;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 500;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyxq15Mjs.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 500;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyx615Mjs.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 500;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyxq15Mjs.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyx615Mjs.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 600;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyxq15Mjs.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyx615Mjs.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 700;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inconsolata/v37/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\ncode,pre,kbd,.font-mono{font-family:var(--sds-ff-monospace)}#content-area #page-title{font-family:var(--sds-ff-heading);font-size:2rem;line-height:2.5rem;font-weight:var(--sds-fw-medium);letter-spacing:-0.02em;color:var(--sds-clr-gray-12)}#content-area .prose{color:var(--sds-clr-gray-11);font-size:var(--sds-fs-primary);line-height:1.6}#content-area .prose p,#content-area .prose li{color:var(--sds-clr-gray-11);line-height:1.6}#content-area .prose strong,#content-area .prose b{color:var(--sds-clr-gray-12);font-weight:var(--sds-fw-semi-bold)}#content-area .prose h2,#content-area .prose h3,#content-area .prose h4,#content-area .prose h5{font-family:var(--sds-ff-heading);font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-12);letter-spacing:-0.01em}#content-area .prose h2{font-size:1.5rem;line-height:2rem;margin-top:2.5rem;margin-bottom:1rem}#content-area .prose h3{font-size:1.25rem;line-height:1.75rem;margin-top:2rem;margin-bottom:0.75rem}#content-area .prose h4{font-size:1.125rem;line-height:1.625rem}#content-area .prose h5{font-size:1rem;line-height:1.5rem;font-weight:var(--sds-fw-semi-bold)}#content-area .prose a:not([class*=\"card\"]):not([data-component-part]):not(.sds *),#content-area .prose a.link:not(.sds *){color:var(--sds-clr-lilac-11);font-weight:var(--sds-fw-medium);text-decoration:none;border-bottom:0;transition:color var(--sds-anim-transition-default)}#content-area .prose a:not([class*=\"card\"]):not([data-component-part]):not(.sds *):hover,#content-area .prose a.link:not(.sds *):hover{color:var(--sds-clr-lilac-12);text-decoration:underline;text-underline-offset:0.2em}#content-area .prose :not(pre)>code{font-family:var(--sds-ff-monospace);font-size:0.875em;font-weight:var(--sds-fw-regular);color:var(--sds-clr-gray-12);background-color:var(--sds-clr-gray-03);border:1px solid var(--sds-clr-gray-06);border-radius:0.25rem;padding:0.0625rem 0.25rem}#content-area .prose table{font-size:var(--sds-fs-secondary);line-height:1.25rem;border-collapse:collapse}#content-area .prose thead th{color:var(--sds-clr-gray-11);font-weight:var(--sds-fw-medium);font-size:0.75rem;line-height:1.125rem;text-transform:uppercase;letter-spacing:0.02em;border-bottom:1px solid var(--sds-clr-gray-06);padding:0.5rem 0.75rem}#content-area .prose tbody td{color:var(--sds-clr-gray-12);border-bottom:1px solid var(--sds-clr-gray-04);padding:0.625rem 0.75rem;vertical-align:top}#content-area .prose tbody tr:last-child td{border-bottom:0}#content-area .prose hr{border-color:var(--sds-clr-gray-04)}#content-area .prose blockquote{border-left:2px solid var(--sds-clr-gray-06);color:var(--sds-clr-gray-11);font-style:normal}#navigation-items a,#table-of-contents a{font-size:var(--sds-fs-secondary);font-weight:var(--sds-fw-medium);color:var(--sds-clr-gray-11)}#navigation-items a:hover,#table-of-contents a:hover,#navigation-items a[aria-current],#table-of-contents a[aria-current]{color:var(--sds-clr-gray-12)}.sds-inline-icon{display:inline-flex;vertical-align:-0.15em;width:1em;height:1em;color:var(--sds-clr-gray-12)}.sds-inline-icon svg{width:100%;height:100%}"},{"filePath":"sds-icons.css","content":"[style*=\"/file-lines.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-file-04.svg\")!important;mask-image:url(\"/img/sds-icons/icons-file-04.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/box-archive.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-folder.svg\")!important;mask-image:url(\"/img/sds-icons/icons-folder.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/house.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-home-05.svg\")!important;mask-image:url(\"/img/sds-icons/icons-home-05.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/magnifying-glass.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-search-md.svg\")!important;mask-image:url(\"/img/sds-icons/icons-search-md.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/ellipsis-vertical.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-dots-vertical.svg\")!important;mask-image:url(\"/img/sds-icons/icons-dots-vertical.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/angle-right.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-chevron-right.svg\")!important;mask-image:url(\"/img/sds-icons/icons-chevron-right.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/play.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-play.svg\")!important;mask-image:url(\"/img/sds-icons/icons-play.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/newspaper.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-announcement-01.svg\")!important;mask-image:url(\"/img/sds-icons/icons-announcement-01.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/cube.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-cube-01.svg\")!important;mask-image:url(\"/img/sds-icons/icons-cube-01.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/mobile-screen.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-phone-01.svg\")!important;mask-image:url(\"/img/sds-icons/icons-phone-01.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/bolt.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-zap.svg\")!important;mask-image:url(\"/img/sds-icons/icons-zap.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/wallet.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-wallet-02.svg\")!important;mask-image:url(\"/img/sds-icons/icons-wallet-02.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/toolbox.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-tool-02.svg\")!important;mask-image:url(\"/img/sds-icons/icons-tool-02.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/message.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-message-square-01.svg\")!important;mask-image:url(\"/img/sds-icons/icons-message-square-01.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/code.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-code-02.svg\")!important;mask-image:url(\"/img/sds-icons/icons-code-02.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/users.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/icons-users-01.svg\")!important;mask-image:url(\"/img/sds-icons/icons-users-01.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/discord.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/logos-discord.svg\")!important;mask-image:url(\"/img/sds-icons/logos-discord.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/x-twitter.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/logos-x-twitter.svg\")!important;mask-image:url(\"/img/sds-icons/logos-x-twitter.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/youtube.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/logos-youtube.svg\")!important;mask-image:url(\"/img/sds-icons/logos-youtube.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}[style*=\"/linkedin.svg\"]{-webkit-mask-image:url(\"/img/sds-icons/logos-linkedin.svg\")!important;mask-image:url(\"/img/sds-icons/logos-linkedin.svg\")!important;-webkit-mask-size:contain!important;mask-size:contain!important}"},{"filePath":"sds-tokens.css","content":":root{--sds-version: \"4.0.2\"\n}:root{--sds-fs-primary: 16px;--sds-fs-secondary: 14px;--sds-fw-light: 300;--sds-fw-regular: 400;--sds-fw-medium: 500;--sds-fw-semi-bold: 600;--sds-fw-bold: 700;--sds-ff-heading: \"Inter\", sans-serif;--sds-ff-base: \"Inter\", sans-serif;--sds-ff-monospace: \"Inconsolata\", monospace;--sds-z-index-tooltip: 20;--sds-z-index-modal: 30;--sds-opacity-disabled-button: 0.6;--sds-window-width-min: 360px;--sds-window-width-max: 1296px;--sds-window-height-min: 100vh;--sds-anim-transition-default: cubic-bezier(0.65, 0.05, 0.36, 1) 100ms;--sds-input-color-border-default: var(--sds-clr-gray-06);--sds-input-color-border-default-hover: var(--sds-clr-gray-06);--sds-input-color-border-default-focus: var(--sds-clr-gray-06);--sds-input-color-border-error: var(--sds-clr-red-06);--sds-input-color-border-error-hover: var(--sds-clr-red-06);--sds-input-color-border-error-focus: var(--sds-clr-red-06);--sds-input-color-border-disabled: var(--sds-clr-gray-07);--sds-input-color-border-disabled-hover: var(--sds-clr-gray-07);--sds-input-color-border-disabled-focus: var(--sds-clr-gray-07);--sds-input-color-background-default: var(--sds-clr-gray-01);--sds-input-color-background-error: var(--sds-clr-gray-01);--sds-input-color-background-disabled: var(--sds-clr-gray-03);--sds-input-color-text-default: var(--sds-clr-gray-12);--sds-input-color-text-placeholder: var(--sds-clr-gray-11);--sds-input-color-text-disabled: var(--sds-clr-gray-11);--sds-input-color-icon: var(--sds-clr-gray-11);--sds-input-box-shadow-color-default: var(--sds-clr-gray-04);--sds-input-box-shadow-color-error: var(--sds-clr-red-04)\n}:root{--sds-clr-gray-01: #fcfcfc;--sds-clr-gray-02: #f8f8f8;--sds-clr-gray-03: #f3f3f3;--sds-clr-gray-04: #ededed;--sds-clr-gray-05: #e8e8e8;--sds-clr-gray-06: #e2e2e2;--sds-clr-gray-07: #dbdbdb;--sds-clr-gray-08: #c7c7c7;--sds-clr-gray-09: #8f8f8f;--sds-clr-gray-10: #858585;--sds-clr-gray-11: #6f6f6f;--sds-clr-gray-12: #171717;--sds-clr-lilac-01: #fdfcfe;--sds-clr-lilac-02: #fbfaff;--sds-clr-lilac-03: #f5f2ff;--sds-clr-lilac-04: #ede9fe;--sds-clr-lilac-05: #e4defc;--sds-clr-lilac-06: #d7cff9;--sds-clr-lilac-07: #c4b8f3;--sds-clr-lilac-08: #aa99ec;--sds-clr-lilac-09: #6e56cf;--sds-clr-lilac-10: #644fc1;--sds-clr-lilac-11: #5746af;--sds-clr-lilac-12: #20134b;--sds-clr-base-00: #ffffff;--sds-clr-base-01: #000000;--sds-overlay-01: rgba(0, 0, 0, 0.1);--sds-overlay-02: rgba(0, 0, 0, 0.2);--sds-overlay-03: rgba(0, 0, 0, 0.3);--sds-overlay-04: rgba(0, 0, 0, 0.4);--sds-overlay-05: rgba(0, 0, 0, 0.5);--sds-overlay-06: rgba(0, 0, 0, 0.6);--sds-overlay-07: rgba(0, 0, 0, 0.7);--sds-overlay-08: rgba(0, 0, 0, 0.8);--sds-overlay-09: rgba(0, 0, 0, 0.9);--sds-overlay-10: rgba(0, 0, 0, 1);--sds-clr-green-01: #fbfefc;--sds-clr-green-02: #f2fcf5;--sds-clr-green-03: #e9f9ee;--sds-clr-green-04: #ddf3e4;--sds-clr-green-05: #ccebd7;--sds-clr-green-06: #b4dfc4;--sds-clr-green-07: #92ceac;--sds-clr-green-08: #5bb98c;--sds-clr-green-09: #30a46c;--sds-clr-green-10: #299764;--sds-clr-green-11: #18794e;--sds-clr-green-12: #153226;--sds-clr-amber-01: #fefdfb;--sds-clr-amber-02: #fff9ed;--sds-clr-amber-03: #fff4d5;--sds-clr-amber-04: #ffecbc;--sds-clr-amber-05: #ffe3a2;--sds-clr-amber-06: #ffd386;--sds-clr-amber-07: #f3ba63;--sds-clr-amber-08: #ee9d2b;--sds-clr-amber-09: #ffb224;--sds-clr-amber-10: #ffa01c;--sds-clr-amber-11: #ad5700;--sds-clr-amber-12: #4e2009;--sds-clr-red-01: #fffcfc;--sds-clr-red-02: #fff8f8;--sds-clr-red-03: #ffefef;--sds-clr-red-04: #ffe5e5;--sds-clr-red-05: #fdd8d8;--sds-clr-red-06: #f9c6c6;--sds-clr-red-07: #f3aeaf;--sds-clr-red-08: #eb9091;--sds-clr-red-09: #e5484d;--sds-clr-red-10: #dc3d43;--sds-clr-red-11: #cd2b31;--sds-clr-red-12: #381316;--sds-clr-white: #ffffff;--sds-clr-gold-01: #fdfdf9;--sds-clr-gold-02: #fffce8;--sds-clr-gold-03: #fffbd1;--sds-clr-gold-04: #fff8bb;--sds-clr-gold-05: #fef2a4;--sds-clr-gold-06: #f9e68c;--sds-clr-gold-07: #efd36c;--sds-clr-gold-08: #ebbc00;--sds-clr-gold-09: #fdda24;--sds-clr-gold-10: #f7ce00;--sds-clr-gold-11: #946800;--sds-clr-gold-12: #35290f;--sds-clr-navy-01: #fdfdfe;--sds-clr-navy-02: #f8faff;--sds-clr-navy-03: #f0f4ff;--sds-clr-navy-04: #e6edfe;--sds-clr-navy-05: #d9e2fc;--sds-clr-navy-06: #c6d4f9;--sds-clr-navy-07: #aec0f5;--sds-clr-navy-08: #8da4ef;--sds-clr-navy-09: #3e63dd;--sds-clr-navy-10: #3a5ccc;--sds-clr-navy-11: #3451b2;--sds-clr-navy-12: #101d46;--sds-clr-teal-01: #fafdfe;--sds-clr-teal-02: #f2fcfd;--sds-clr-teal-03: #e7f9fb;--sds-clr-teal-04: #d8f3f6;--sds-clr-teal-05: #c4eaef;--sds-clr-teal-06: #aadee6;--sds-clr-teal-07: #84cdda;--sds-clr-teal-08: #3db9cf;--sds-clr-teal-09: #05a2c2;--sds-clr-teal-10: #0894b3;--sds-clr-teal-11: #0c7792;--sds-clr-teal-12: #04313c;--sds-clr-mint-01: #f9fefd;--sds-clr-mint-02: #effefa;--sds-clr-mint-03: #e1fbf4;--sds-clr-mint-04: #d2f7ed;--sds-clr-mint-05: #c0efe3;--sds-clr-mint-06: #a5e4d4;--sds-clr-mint-07: #7dd4c0;--sds-clr-mint-08: #40c4aa;--sds-clr-mint-09: #70e1c8;--sds-clr-mint-10: #69d9c1;--sds-clr-mint-11: #147d6f;--sds-clr-mint-12: #09342e;--sds-clr-lime-01: #fcfdfa;--sds-clr-lime-02: #f7fcf0;--sds-clr-lime-03: #eefadc;--sds-clr-lime-04: #e4f7c7;--sds-clr-lime-05: #d7f2b0;--sds-clr-lime-06: #c9e894;--sds-clr-lime-07: #b1d16a;--sds-clr-lime-08: #94ba2c;--sds-clr-lime-09: #99d52a;--sds-clr-lime-10: #93c926;--sds-clr-lime-11: #5d770d;--sds-clr-lime-12: #263209;--sds-clr-pink-01: #fffcfe;--sds-clr-pink-02: #fff7fc;--sds-clr-pink-03: #feeef8;--sds-clr-pink-04: #fce5f3;--sds-clr-pink-05: #f9d8ec;--sds-clr-pink-06: #f3c6e2;--sds-clr-pink-07: #ecadd4;--sds-clr-pink-08: #e38ec3;--sds-clr-pink-09: #d6409f;--sds-clr-pink-10: #d23197;--sds-clr-pink-11: #cd1d8d;--sds-clr-pink-12: #3b0a2a;--sds-clr-tooltip-background: #ededed;--sds-clr-tooltip-title: #161616;--sds-clr-tooltip-text: #505050;--sds-clr-tooltip-contrast-background: #171717;--sds-clr-tooltip-contrast-title: #fcfcfc;--sds-clr-tooltip-contrast-text: #c7c7c7\n}html.dark,html[data-theme=\"dark\"]{--sds-clr-gray-01: #161616;--sds-clr-gray-02: #1c1c1c;--sds-clr-gray-03: #232323;--sds-clr-gray-04: #282828;--sds-clr-gray-05: #2e2e2e;--sds-clr-gray-06: #343434;--sds-clr-gray-07: #3e3e3e;--sds-clr-gray-08: #505050;--sds-clr-gray-09: #707070;--sds-clr-gray-10: #7e7e7e;--sds-clr-gray-11: #a0a0a0;--sds-clr-gray-12: #ededed;--sds-clr-lilac-01: #17151f;--sds-clr-lilac-02: #1c172b;--sds-clr-lilac-03: #251e40;--sds-clr-lilac-04: #2c2250;--sds-clr-lilac-05: #32275f;--sds-clr-lilac-06: #392c72;--sds-clr-lilac-07: #443592;--sds-clr-lilac-08: #5842c3;--sds-clr-lilac-09: #6e56cf;--sds-clr-lilac-10: #7c66dc;--sds-clr-lilac-11: #9e8cfc;--sds-clr-lilac-12: #f1eefe;--sds-clr-base-00: #000000;--sds-clr-base-01: #ffffff;--sds-overlay-01: rgba(255, 255, 255, 0.1);--sds-overlay-02: rgba(255, 255, 255, 0.2);--sds-overlay-03: rgba(255, 255, 255, 0.3);--sds-overlay-04: rgba(255, 255, 255, 0.4);--sds-overlay-05: rgba(255, 255, 255, 0.5);--sds-overlay-06: rgba(255, 255, 255, 0.6);--sds-overlay-07: rgba(255, 255, 255, 0.7);--sds-overlay-08: rgba(255, 255, 255, 0.8);--sds-overlay-09: rgba(255, 255, 255, 0.9);--sds-overlay-10: rgba(255, 255, 255, 1);--sds-clr-green-01: #0d1912;--sds-clr-green-02: #0c1f17;--sds-clr-green-03: #0f291e;--sds-clr-green-04: #113123;--sds-clr-green-05: #133929;--sds-clr-green-06: #164430;--sds-clr-green-07: #1b543a;--sds-clr-green-08: #236e4a;--sds-clr-green-09: #30a46c;--sds-clr-green-10: #3cb179;--sds-clr-green-11: #4cc38a;--sds-clr-green-12: #e5fbeb;--sds-clr-amber-01: #1f1300;--sds-clr-amber-02: #271700;--sds-clr-amber-03: #341c00;--sds-clr-amber-04: #3f2200;--sds-clr-amber-05: #4a2900;--sds-clr-amber-06: #573300;--sds-clr-amber-07: #693f05;--sds-clr-amber-08: #824e00;--sds-clr-amber-09: #ffb224;--sds-clr-amber-10: #ffcb47;--sds-clr-amber-11: #f1a10d;--sds-clr-amber-12: #fef3dd;--sds-clr-red-01: #1f1315;--sds-clr-red-02: #291415;--sds-clr-red-03: #3c181a;--sds-clr-red-04: #481a1d;--sds-clr-red-05: #541b1f;--sds-clr-red-06: #671e22;--sds-clr-red-07: #822025;--sds-clr-red-08: #aa2429;--sds-clr-red-09: #e5484d;--sds-clr-red-10: #f2555a;--sds-clr-red-11: #ff6369;--sds-clr-red-12: #feecee;--sds-clr-white: #ffffff;--sds-clr-gold-01: #1c1500;--sds-clr-gold-02: #221a00;--sds-clr-gold-03: #2c2100;--sds-clr-gold-04: #352800;--sds-clr-gold-05: #3e3000;--sds-clr-gold-06: #493c00;--sds-clr-gold-07: #594a05;--sds-clr-gold-08: #705e00;--sds-clr-gold-09: #fdda24;--sds-clr-gold-10: #ffef5c;--sds-clr-gold-11: #f0c000;--sds-clr-gold-12: #fffad1;--sds-clr-navy-01: #131620;--sds-clr-navy-02: #15192d;--sds-clr-navy-03: #192140;--sds-clr-navy-04: #1c274f;--sds-clr-navy-05: #1f2c5c;--sds-clr-navy-06: #22346e;--sds-clr-navy-07: #273e89;--sds-clr-navy-08: #2f4eb2;--sds-clr-navy-09: #3e63dd;--sds-clr-navy-10: #5373e7;--sds-clr-navy-11: #849dff;--sds-clr-navy-12: #eef1fd;--sds-clr-teal-01: #07191d;--sds-clr-teal-02: #061e24;--sds-clr-teal-03: #072830;--sds-clr-teal-04: #07303b;--sds-clr-teal-05: #073844;--sds-clr-teal-06: #064150;--sds-clr-teal-07: #045063;--sds-clr-teal-08: #00647d;--sds-clr-teal-09: #05a2c2;--sds-clr-teal-10: #00b1cc;--sds-clr-teal-11: #00c2d7;--sds-clr-teal-12: #e1f8fa;--sds-clr-mint-01: #081917;--sds-clr-mint-02: #05201e;--sds-clr-mint-03: #052926;--sds-clr-mint-04: #04312c;--sds-clr-mint-05: #033a34;--sds-clr-mint-06: #01453d;--sds-clr-mint-07: #00564a;--sds-clr-mint-08: #006d5b;--sds-clr-mint-09: #70e1c8;--sds-clr-mint-10: #95f3d9;--sds-clr-mint-11: #25d0ab;--sds-clr-mint-12: #e7fcf7;--sds-clr-lime-01: #141807;--sds-clr-lime-02: #181d08;--sds-clr-lime-03: #1e260d;--sds-clr-lime-04: #252e0f;--sds-clr-lime-05: #2b3711;--sds-clr-lime-06: #344213;--sds-clr-lime-07: #415215;--sds-clr-lime-08: #536716;--sds-clr-lime-09: #99d52a;--sds-clr-lime-10: #c4f042;--sds-clr-lime-11: #87be22;--sds-clr-lime-12: #effbdd;--sds-clr-pink-01: #1f121b;--sds-clr-pink-02: #271421;--sds-clr-pink-03: #3a182f;--sds-clr-pink-04: #451a37;--sds-clr-pink-05: #501b3f;--sds-clr-pink-06: #601d48;--sds-clr-pink-07: #7a1d5a;--sds-clr-pink-08: #a71873;--sds-clr-pink-09: #d6409f;--sds-clr-pink-10: #e34ba9;--sds-clr-pink-11: #f65cb6;--sds-clr-pink-12: #feebf7;--sds-clr-tooltip-background: #171717;--sds-clr-tooltip-title: #fcfcfc;--sds-clr-tooltip-text: #c7c7c7;--sds-clr-tooltip-contrast-background: #ededed;--sds-clr-tooltip-contrast-title: #161616;--sds-clr-tooltip-contrast-text: #505050\n}"}],"page":{"pagePath":"meetings/2026/08/27","slug":"/meetings/2026/08/27","pageMetadata":{"title":"2026-08-27","description":"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.","href":"/meetings/2026/08/27"},"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: \"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\"\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`,em:`em`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,OptimizedFrame}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.em,{children:`August 27, 2026`}),` · `,_jsx(_components.a,{href:`https://github.com/kaankacar`,children:`Kaan Kacar`}),`, Developer Advocate`]}),`\n`,_jsx(OptimizedFrame,{className:`mint-w-full mint-aspect-video mint-rounded-xl`,src:`https://www.youtube-nocookie.com/embed/5dVgKuapDPg?rel=0\u0026modestbranding=1`,title:`YouTube video player`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:true}),`\n`,_jsx(Heading,{level:`2`,id:`housekeeping-protocol-28-and-another-privacy-preview`,children:`Housekeeping: Protocol 28 and Another Privacy Preview`}),`\n`,_jsxs(_components.p,{children:[`Two links before the agenda. First: if you haven’t upgraded yet, do it now. Testnet is on `,_jsx(_components.strong,{children:`Adapter (Protocol 28)`}),` as of this week — the testnet vote landed the same day as this call — and mainnet follows in a few weeks. Check the `,_jsx(_components.a,{href:`https://stellar.org/blog/developers/adapter-protocol-28-upgrade-guide`,children:`upgrade guide`}),` for what changed: faster consensus (CAP-83), externally managed contract executables (CAP-85), and sparse-map host functions for data migrations (CAP-86).`]}),`\n`,_jsxs(_components.p,{children:[`Second: `,_jsx(_components.strong,{children:`Stellar Private Payments`}),` is officially in `,_jsx(_components.a,{href:`https://stellar.org/blog/developers/developer-preview-stellar-private-payments`,children:`developer preview`}),`. Deposit into a shared pool, transact inside it, withdraw — without publicly linking who paid whom. Fitting, because this week was a privacy call too.`]}),`\n`,_jsx(Heading,{level:`2`,id:`this-weeks-guest-moonlight`,children:`This Week’s Guest: Moonlight`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Moonlight Protocol`}),` (moonlightprotocol.io) is a privacy layer built on Stellar by `,_jsx(_components.strong,{children:`The Aha Company`}),`. Their one-liner: it transforms each account into a constellation of unlinkable UTXOs, shielding balances and payments from public traceability. I’ll admit a bias — this might be my favorite privacy solution on Stellar — and it’s probably the single most requested topic from you all, so I was excited to have `,_jsx(_components.strong,{children:`Chad`}),` and `,_jsx(_components.strong,{children:`Gorka`}),` on. We waited for the room to fill (50+ at the start, close to 200 by the end) and handed Chad the stage.`]}),`\n`,_jsxs(_components.p,{children:[`Introductions came late, because I assumed everyone already knows Chad. For the record: `,_jsx(_components.strong,{children:`Chad Ostrowski`}),` is founder and now CTO of The Aha Company, which arrived about a year before Stellar had smart contracts and built a lot of the core developer tooling — `,_jsx(_components.strong,{children:`Scaffold Stellar`}),` and `,_jsx(_components.strong,{children:`Stellar Registry`}),` among them — plus stablecoin work for large global banks and a tokenized money market fund. A new passkey wallet is in the works too; more on that at Meridian. `,_jsx(_components.strong,{children:`Gorka`}),`, a self-described digital nomad, has been the lead engineer on Moonlight for the past six months — the person actually in the guts of the protocol, and the one who made the UIs, stacks, and layers compose into something you can click.`]}),`\n`,_jsx(Heading,{level:`2`,id:`chads-tour-compliant-privacy-without-zk`,children:`Chad’s Tour: Compliant Privacy Without ZK`}),`\n`,_jsxs(_components.p,{children:[`Chad’s framing: Moonlight is the privacy layer that makes public blockchains usable for `,_jsx(_components.strong,{children:`regulated finance`}),`. It came directly from needs their banking partners kept raising. Banks want public blockchains — faster settlement, lower costs, new revenue models — but public is a deal breaker. Without privacy they can’t legally or competitively make the switch, so today they’re forced to choose between privacy and compliance. He showed a chart of privacy solutions getting blocked as regulation tightened: in blockchain, more regulation has meant less privacy, and MiCA makes it harder still. The problem is structural — pay with your public key and the cashier sees your balance `,_jsx(_components.em,{children:`and`}),` your full history — and regulatory needs differ per region. Privacy isn’t dead. We need `,_jsx(_components.strong,{children:`compliant`}),` privacy.`]}),`\n`,_jsxs(_components.p,{children:[`One thing Chad made explicit when a viewer asked: there is `,_jsx(_components.strong,{children:`no zero-knowledge cryptography in Moonlight today`}),`. Turns out you don’t need it to build a privacy solution. ZK could add superpowers later (larger bundle sizes, for one), but there’s no immediate plan or need. If you’ve been following the `,_jsx(_components.a,{href:`/meetings/2026/08/06`,children:`confidential tokens`}),` and ZK conversations on this stream, note the contrast: this is a different design axis entirely.`]}),`\n`,_jsx(_components.p,{children:`The four building blocks:`}),`\n`,_jsx(Heading,{level:`3`,id:`utxos-pronounced-ucho`,children:`UTXOs (Pronounced “Ucho”)`}),`\n`,_jsxs(_components.p,{children:[`Instead of accounts and balances, Moonlight uses the `,_jsx(_components.strong,{children:`unspent transaction output`}),` model you know from Bitcoin and Cardano. Each payment consumes multiple UTXO inputs and creates multiple outputs, breaking the value trail. Entropy is tunable: fewer UTXOs for cheaper transactions, more for more privacy. Providers can bundle one-to-many or many-to-many transfers — Alice, Bob, Calvin, and David all tell their bank “send this,” the bank combines everything into one on-chain bundle and can mix in decoy UTXOs on top. Tailored bundling strategies also unlock new service models: mixers, paymasters, aggregators. Also, Gorka taught Chad to pronounce it “ucho,” a viewer asked whether that’s a bad word somewhere, Gorka swore it’s just a T and an X bundled together, and I’m adopting it.`]}),`\n`,_jsx(Heading,{level:`3`,id:`standardized-derivation`,children:`Standardized Derivation`}),`\n`,_jsx(_components.p,{children:`One master secret. Every Moonlight address derives from the same seed, which simplifies backups, keeps self-custody intact, and lets you migrate between wallets or providers with no loss of access and an unbroken privacy posture. No derivation data touches the chain, so observers can’t cluster addresses back to the master key. And while Stellar is the system of record, the incoming keypair could come from Ethereum, Cardano, Solana, or elsewhere.`}),`\n`,_jsx(Heading,{level:`3`,id:`privacy-providers-and-councils`,children:`Privacy Providers and Councils`}),`\n`,_jsxs(_components.p,{children:[`The key concept. Every user onboards with a `,_jsx(_components.strong,{children:`privacy provider`}),` — think bank, though it could be another financial institution or a wallet. The insight: users already trust these institutions with their private data, so Moonlight harnesses that model instead of fighting it. Providers run off-chain infrastructure (a Moonlight API service, KYC/AML) and on-chain infrastructure (an operation-executor wallet registered with a council contract). From the outside the UTXO graph is unintelligible; the provider has enough to see `,_jsx(_components.em,{children:`its own users`}),` and answer regulator audit requests. Providers also do the bundling.`]}),`\n`,_jsxs(_components.p,{children:[`Providers self-govern through `,_jsx(_components.strong,{children:`councils`}),`, grouped by regulatory region. Chad’s running example: two large US banks deploy a council contract; a third asks to join, and the members use their multisig to add its verified address. Users keep sovereignty — onboard with two providers in the same council and you can route one transaction through each, with your wallet living separately from both. Cross-border payments need a provider that operates, and answers to regulators, in both regions.`]}),`\n`,_jsx(Heading,{level:`3`,id:`privacy-channels`,children:`Privacy Channels`}),`\n`,_jsxs(_components.p,{children:[`One smart contract per channel, `,_jsx(_components.strong,{children:`one channel per asset`}),`. The council decides which assets to support and deploys a channel for each — USDC seems likely, a tokenized money market fund maybe, XLM who knows. Channels can carry extensions to bridge liquidity between channels and regions or connect directly to other on-chain applications.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-testnet-dashboard`,children:`The Testnet Dashboard`}),`\n`,_jsxs(_components.p,{children:[`It’s live on testnet. Chad pulled up the network dashboard (linked from moonlightprotocol.io): 24 councils, including a seeded “US Banks” example with three providers, each with its public key and wallet-connect URL — the two things the browser wallet asks for at setup. We clicked into a bundled send from a seeded “EU bank” provider and looked at what an outsider sees: gobbledygook. A lot of uchos. The provider’s own dashboard would join those outputs to its KYC records; logged out, you get nothing. One gotcha from chat: the council testnet UI currently talks to `,_jsx(_components.strong,{children:`Freighter`}),` directly, not through Stellar Wallets Kit.`]}),`\n`,_jsx(_components.p,{children:`I said on the call that the council concept makes enormous sense to me — entities choosing which channels and assets to offer, per region, is how compliance actually works — and a few months after mainnet I’d love to see a long list of providers plugging institutions into this layer.`}),`\n`,_jsx(Heading,{level:`2`,id:`gorkas-demo-alice-bob-and-42-xlm`,children:`Gorka’s Demo: Alice, Bob, and 42 XLM`}),`\n`,_jsxs(_components.p,{children:[`Two wallets side by side. Demo one, the low-level flow: Bob is the only one who can derive UTXOs from his secret key, so he generates a payment request — a very long string — and sends it to Alice. Alice has no channel balance yet, so she `,_jsx(_components.strong,{children:`deposits 100 XLM`}),` into the privacy channel, then fulfills Bob’s request using only the information in his message. Bob refreshes: balance updated. Bob then `,_jsx(_components.strong,{children:`withdraws`}),` back to his public account to show the round trip. A viewer asked whether the council validates these transactions — no, they’re regular Stellar transactions; the council only deploys channels and governs who may interact with them.`]}),`\n`,_jsxs(_components.p,{children:[`Demo two is why this can actually ship to humans. Passing long strings around is “somewhat not the best user experience,” as Gorka put it. Since providers hold KYC data on their users, they can abstract that away: Alice logs into a provider UI and sends `,_jsx(_components.strong,{children:`42 XLM to “Bob”`}),` by name. The provider holds the amount for Bob until he claims it; his self-derived UTXOs stay out of the provider’s reach the whole time, and if he’s uneasy about anything held on his behalf he can sweep it into his own UTXOs immediately. Sovereignty preserved, friction removed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`fifo-drops-in`,children:`Fifo Drops In`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fifo`}),` — Brazil-based, roughly six years in the Stellar ecosystem starting at Cheesecake Labs, about a year and a half at Aha — had been live-commenting the whole stream, so we pulled him on stage (video slightly squashed). Moonlight started as his garage project a couple of years ago; the original contracts were his alone before Chad and Gorka came in to find the problems and evolve the protocol. The origin story matches Chad’s: banking institutions saying “blockchain is great, but how do I onboard users without exposing my whole operation?” It’s still a moving target — every new business conversation surfaces another use case. Fifo also works with SDF on a program helping new partners past the common friction points of building on Stellar, so you may have met him already.`]}),`\n`,_jsx(Heading,{level:`2`,id:`qa-and-how-to-try-it`,children:`Q\u0026A and How to Try It`}),`\n`,_jsxs(_components.p,{children:[`A viewer asked for a flow diagram from sender to pool. There is one — it lives in the documentation produced during the recent `,_jsx(_components.strong,{children:`Runtime Verification`}),` audit of the core contracts, whose `,_jsx(_components.a,{href:`https://runtimeverification.com/public-report/moonlight-audit`,children:`public report`}),` is up. I offered Gorka a two-hour session walking through every diagram; the silence told me to schedule that another time. Spam us on Discord if you want it to happen.`]}),`\n`,_jsxs(_components.p,{children:[`Elliot from our DevRel team had already spun up a council and a provider of his own and asked how to deposit. The order: deploy the `,_jsx(_components.strong,{children:`council`}),` (the administering group), deploy a `,_jsx(_components.strong,{children:`channel`}),` for one asset (think private pool), then deposit the first liquidity into it. You’ll need the `,_jsx(_components.strong,{children:`browser wallet`}),` — build it from source and load it in dev mode in Chrome or Brave — or, being Elliot, call the contract directly. Everything is open source under github.com/Moonlight-Protocol: the browser wallet, the provider stack, and the UIs from the demo. The team’s explicit request is to go break it: create providers and councils, send private transactions, file what you find. There’s no bug bounty yet, just a very big thank-you — and please, no AI-generated low-severity reports; we’ve had that problem before.`]}),`\n`,_jsx(Heading,{level:`2`,id:`closing`,children:`Closing`}),`\n`,_jsxs(_components.p,{children:[`Thanks to Chad, Gorka, and last-minute Fifo. Follow `,_jsx(_components.strong,{children:`@theahaco`}),` on X — with 3,500 monthly active developers in this ecosystem, not knowing The Aha Company is on you — and go find bugs in Moonlight. See you next week.`]})]})}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":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"2026-08-27","description":"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.","href":"/meetings/2026/08/27"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Housekeeping: Protocol 28 and Another Privacy Preview","slug":"housekeeping-protocol-28-and-another-privacy-preview","depth":2,"children":[]},{"title":"This Week’s Guest: Moonlight","slug":"this-weeks-guest-moonlight","depth":2,"children":[]},{"title":"Chad’s Tour: Compliant Privacy Without ZK","slug":"chads-tour-compliant-privacy-without-zk","depth":2,"children":[{"title":"UTXOs (Pronounced “Ucho”)","slug":"utxos-pronounced-ucho","depth":3,"children":[]},{"title":"Standardized Derivation","slug":"standardized-derivation","depth":3,"children":[]},{"title":"Privacy Providers and Councils","slug":"privacy-providers-and-councils","depth":3,"children":[]},{"title":"Privacy Channels","slug":"privacy-channels","depth":3,"children":[]}]},{"title":"The Testnet Dashboard","slug":"the-testnet-dashboard","depth":2,"children":[]},{"title":"Gorka’s Demo: Alice, Bob, and 42 XLM","slug":"gorkas-demo-alice-bob-and-42-xlm","depth":2,"children":[]},{"title":"Fifo Drops In","slug":"fifo-drops-in","depth":2,"children":[]},{"title":"Q\u0026A and How to Try It","slug":"qa-and-how-to-try-it","depth":2,"children":[]},{"title":"Closing","slug":"closing","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/stellardevelopmentfoundation/9a01be681220ee40/os-tab-sync.js","/_mintlify/custom/stellardevelopmentfoundation/f3843641e1149ad8/for-agents.js"],"dynamicCss":".mint-aspect-video {\n aspect-ratio: 16 / 9\n}\n.mint-w-full {\n width: 100%\n}\n.mint-rounded-xl {\n border-radius: 0.75rem\n}","subdomain":"stellardevelopmentfoundation","siteName":"Stellar Developer Docs","title":"2026-08-27 - Stellar Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T14:38:27.471Z","originalFileLocation":"meetings/2026/08/27.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=\"light\"}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=\"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Stellar Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"2026-08-27 - Stellar Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Stellar Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.stellar.org/meetings/2026/08/27\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://developers.stellar.org/brand/og-card.png\">\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=\"2026-08-27 - Stellar Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://developers.stellar.org/brand/og-card.png\">\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/stellardevelopmentfoundation/ZCqvKiggyykYxlC6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Stellar Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6E56CF\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Stellar Developers: build where money already moves around the world\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.stellar.org/meetings/2026/08/27\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/meetings/2026/08/27.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.stellar.org/#organization\",\"name\":\"Stellar Developer Docs\",\"url\":\"https://developers.stellar.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stellardevelopmentfoundation/hmWBKBicbGG4DTu6/logo/light.svg?fit=max\u0026auto=format\u0026n=hmWBKBicbGG4DTu6\u0026q=85\u0026s=8a00b2dfbc97a739a34cae5bce195900\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.stellar.org#website\",\"name\":\"Stellar Developer Docs\",\"url\":\"https://developers.stellar.org\",\"publisher\":{\"@id\":\"https://developers.stellar.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.stellar.org/meetings/2026/08/27#webpage\",\"url\":\"https://developers.stellar.org/meetings/2026/08/27\",\"name\":\"2026-08-27\",\"description\":\"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\",\"dateModified\":\"2026-10-22T14:38:27.471Z\",\"isPartOf\":{\"@id\":\"https://developers.stellar.org#website\"},\"breadcrumb\":{\"@id\":\"https://developers.stellar.org/meetings/2026/08/27#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.stellar.org/meetings/2026/08/27#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\" \",\"item\":\"https://developers.stellar.org/meetings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2026\",\"item\":\"https://developers.stellar.org/meetings/2026/11/12\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"2026-08-27\",\"item\":\"https://developers.stellar.org/meetings/2026/08/27\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.stellar.org/meetings/2026/08/27#article\",\"headline\":\"2026-08-27\",\"name\":\"2026-08-27\",\"description\":\"Moonlight, a compliant privacy layer on Stellar built on UTXOs, with Chad Ostrowski and Gorka of The Aha Company. Plus Protocol 28 and private payments news.\",\"url\":\"https://developers.stellar.org/meetings/2026/08/27\",\"mainEntityOfPage\":{\"@id\":\"https://developers.stellar.org/meetings/2026/08/27#webpage\"},\"image\":\"https://developers.stellar.org/brand/og-card.png\",\"dateModified\":\"2026-10-22T14:38:27.471Z\",\"publisher\":{\"@id\":\"https://developers.stellar.org/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.stellar.org#website\"}}]}\u003c/script>","agentPointerHref":"/meetings/2026/08/27.md","siteName":"Stellar Developer Docs","nav":{"global":{"anchors":[{"anchor":"Community","icon":"users","href":"https://stellar.org/community"},{"anchor":"Blog","icon":"newspaper","href":"https://stellar.org/blog"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/zVYdY3ktTn"},{"anchor":"X","icon":"x-twitter","href":"https://twitter.com/StellarOrg"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@StellarDevelopmentFoundation"}]},"tabs":[{"tab":"Build","pages":[{"title":"Build","href":"/docs/build"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/docs/learn/fundamentals"}]},{"tab":"Tokens","pages":[{"title":"Tokens","href":"/docs/tokens"}]},{"tab":"Data","pages":[{"title":"Data","href":"/docs/data"}]},{"tab":"Tools","pages":[{"title":"Tools","href":"/docs/tools"}]},{"tab":"Networks","pages":[{"title":"Networks","href":"/docs/networks"}]},{"tab":"Validators","pages":[{"title":"Validators","href":"/docs/validators"}]},{"tab":"Platforms","pages":[{"title":"Platforms","href":"/docs/platforms"}]},{"tab":"Meetings","pages":[{"group":" ","pages":[{"title":"Meeting Notes","href":"/meetings"},{"group":"2026","pages":[{"title":"2026-11-12","href":"/meetings/2026/11/12"},{"title":"2026-11-05","href":"/meetings/2026/11/05"},{"title":"2026-10-08","href":"/meetings/2026/10/08"},{"title":"2026-10-01","href":"/meetings/2026/10/01"},{"title":"2026-09-24","href":"/meetings/2026/09/24"},{"title":"2026-09-17 Protocol Discussion","href":"/meetings/2026/09/17/protocol"},{"title":"2026-09-17","href":"/meetings/2026/09/17"},{"title":"2026-09-10","href":"/meetings/2026/09/10"},{"title":"2026-09-03","description":"I showed up in a black jacket this week, like a serious businessman here to discuss confidential tokens and privacy.","href":"/meetings/2026/09/03"},{"title":"2026-08-27","href":"/meetings/2026/08/27"},{"title":"2026-08-20","description":"This week was a coding session rather than a project spotlight: six wallet infrastructures, one demo app, and a running list of gotchas for each.","href":"/meetings/2026/08/20"},{"title":"2026-08-13","href":"/meetings/2026/08/13"},{"title":"2026-08-06","href":"/meetings/2026/08/06"},{"title":"2026-07-30","href":"/meetings/2026/07/30"},{"title":"2026-07-23","href":"/meetings/2026/07/23"},{"title":"2026-07-16 Protocol Discussion","href":"/meetings/2026/07/16/protocol"},{"title":"2026-07-16","href":"/meetings/2026/07/16"},{"title":"2026-07-09","href":"/meetings/2026/07/09"},{"title":"2026-07-02","href":"/meetings/2026/07/02"},{"title":"2026-06-25","href":"/meetings/2026/06/25"},{"title":"2026-06-18","href":"/meetings/2026/06/18"},{"title":"2026-06-11","href":"/meetings/2026/06/11"},{"title":"2026-05-21","href":"/meetings/2026/05/21"},{"title":"2026-05-14","href":"/meetings/2026/05/14"},{"title":"2026-05-07","href":"/meetings/2026/05/07"},{"title":"2026-04-30","href":"/meetings/2026/04/30"},{"title":"2026-04-23","href":"/meetings/2026/04/23"},{"title":"2026-04-16","href":"/meetings/2026/04/16"},{"title":"2026-02-26","href":"/meetings/2026/02/26"},{"title":"2026-01-29","href":"/meetings/2026/01/29"},{"title":"2026-01-22","href":"/meetings/2026/01/22"}]},{"group":"2025","pages":[{"title":"2025-11-06","href":"/meetings/2025/11/06"},{"title":"2025-10-30","href":"/meetings/2025/10/30"},{"title":"2025-10-23","href":"/meetings/2025/10/23"},{"title":"2025-10-16","href":"/meetings/2025/10/16"},{"title":"2025-10-09","href":"/meetings/2025/10/09"},{"title":"2025-10-02","href":"/meetings/2025/10/02"},{"title":"2025-09-25","href":"/meetings/2025/09/25"},{"title":"2025-08-07","href":"/meetings/2025/08/07"},{"title":"2025-07-24","href":"/meetings/2025/07/24"},{"title":"2025-07-17","href":"/meetings/2025/07/17"},{"title":"2025-07-10","href":"/meetings/2025/07/10"},{"title":"2025-05-22","href":"/meetings/2025/05/22"},{"title":"2025-05-01","href":"/meetings/2025/05/01"},{"title":"2025-04-17","href":"/meetings/2025/04/17"},{"title":"2025-04-10","href":"/meetings/2025/04/10"},{"title":"2025-04-03","href":"/meetings/2025/04/03"},{"title":"2025-03-27","href":"/meetings/2025/03/27"},{"title":"2025-03-06","href":"/meetings/2025/03/06"},{"title":"2025-02-27","href":"/meetings/2025/02/27"},{"title":"2025-02-20","href":"/meetings/2025/02/20"},{"title":"2025-02-13","href":"/meetings/2025/02/13"},{"title":"2025-02-06","href":"/meetings/2025/02/06"},{"title":"2025-01-30","href":"/meetings/2025/01/30"},{"title":"2025-01-23","href":"/meetings/2025/01/23"},{"title":"2025-01-16","href":"/meetings/2025/01/16"}]},{"group":"2024","pages":[{"title":"2024-12-19","href":"/meetings/2024/12/19"},{"title":"2024-12-12","href":"/meetings/2024/12/12"},{"title":"2024-12-05","href":"/meetings/2024/12/05"},{"title":"2024-11-14","href":"/meetings/2024/11/14"},{"title":"2024-10-24","href":"/meetings/2024/10/24"},{"title":"2024-09-26","href":"/meetings/2024/09/26"},{"title":"2024-09-19","href":"/meetings/2024/09/19"},{"title":"2024-09-12","href":"/meetings/2024/09/12"},{"title":"2024-09-05","href":"/meetings/2024/09/05"},{"title":"2024-08-29","href":"/meetings/2024/08/29"},{"title":"2024-08-23","href":"/meetings/2024/08/22"},{"title":"2024-08-15","href":"/meetings/2024/08/15"},{"title":"2024-08-12","href":"/meetings/2024/08/08"},{"title":"2024-08-01","href":"/meetings/2024/08/01"},{"title":"2024-07-25","href":"/meetings/2024/07/25"},{"title":"2024-07-18","href":"/meetings/2024/07/18"},{"title":"2024-07-11","href":"/meetings/2024/07/11"},{"title":"2024-06-27","href":"/meetings/2024/06/27"},{"title":"2024-06-20","href":"/meetings/2024/06/20"},{"title":"2024-06-13","href":"/meetings/2024/06/13"},{"title":"2024-05-09","href":"/meetings/2024/05/09"},{"title":"2024-05-02","href":"/meetings/2024/05/02"},{"title":"2024-04-25","href":"/meetings/2024/04/25"},{"title":"2024-04-18","href":"/meetings/2024/04/18"},{"title":"2024-04-11","href":"/meetings/2024/04/11"},{"title":"2024-04-04","href":"/meetings/2024/04/04"},{"title":"2024-03-28","href":"/meetings/2024/03/28"},{"title":"2024-03-21","href":"/meetings/2024/03/21"},{"title":"2024-03-14","href":"/meetings/2024/03/14"},{"title":"2024-03-07","href":"/meetings/2024/03/07"},{"title":"2024-02-29","href":"/meetings/2024/02/29"},{"title":"2024-02-22","href":"/meetings/2024/02/22"},{"title":"2024-02-15","href":"/meetings/2024/02/15"},{"title":"2024-02-08","href":"/meetings/2024/02/08"},{"title":"2024-02-01","href":"/meetings/2024/02/01"},{"title":"2024-01-26","href":"/meetings/2024/01/26"},{"title":"2024-01-18","href":"/meetings/2024/01/18"}]}]}]}]},"basePath":"","title":"2026-08-27 - Stellar Developer Docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}