From 8713d022655bc7908dc005a680d20585cda6851c Mon Sep 17 00:00:00 2001 From: dhruvja Date: Mon, 6 Jul 2026 20:20:06 +0530 Subject: [PATCH 1/3] docs: add contextual menu with copy and AI options Enable Mintlify's contextual menu so every docs page shows a top-of-page button to copy the page as Markdown, view the raw Markdown, and open the page as context in ChatGPT or Claude. --- docs.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs.json b/docs.json index 68a5c98..bcf3e39 100644 --- a/docs.json +++ b/docs.json @@ -3,6 +3,14 @@ "theme": "mint", "name": "MagicBlock Documentation", "description": "With MagicBlock, anything you imagine is possible. Build unstoppable games, high-speed DeFi, and Web3 apps that run like Web2.", + "contextual": { + "options": [ + "copy", + "view", + "chatgpt", + "claude" + ] + }, "errors": { "404": { "redirect": true From 6d3ece418550913494405279fec987899dea7baf Mon Sep 17 00:00:00 2001 From: dhruvja Date: Wed, 8 Jul 2026 11:26:02 +0530 Subject: [PATCH 2/3] docs: configure Vale spellcheck and fix flagged typos --- .vale.ini | 47 ++ .../config/vocabularies/Mintlify/accept.txt | 526 ++++++++++++++++++ .../introduction/ephemeral-rollup.mdx | 2 +- .../introduction/transactions.mdx | 2 +- .../introduction/why.mdx | 2 +- .../transactions.mdx | 2 +- .../introduction/ephemeral-rollup.mdx | 2 +- pages/get-started/use-cases/depin.mdx | 2 +- pages/get-started/use-cases/games.mdx | 2 +- .../how-to-guide/access-control.mdx | 2 +- pages/tools/crank/implementation.mdx | 2 +- pages/tools/session-keys/introduction.mdx | 2 +- pages/tools/session-keys/security.mdx | 2 +- pages/tools/session-keys/usage-examples.mdx | 2 +- .../getting-started/configuration.mdx | 2 +- .../guides/dex-integration.mdx | 4 +- .../tools/solana-unity-sdk/guides/jupiter.mdx | 8 +- .../solana-unity-sdk/guides/mint-an-nft.mdx | 6 +- 18 files changed, 595 insertions(+), 22 deletions(-) create mode 100644 .vale.ini create mode 100644 .vale/styles/config/vocabularies/Mintlify/accept.txt diff --git a/.vale.ini b/.vale.ini new file mode 100644 index 0000000..0b2dfe1 --- /dev/null +++ b/.vale.ini @@ -0,0 +1,47 @@ +# Vale configuration for MagicBlock documentation + +StylesPath = .vale/styles +MinAlertLevel = suggestion +IgnoredScopes = code, tt, img, url, a +SkippedScopes = script, style, pre, figure, code + +Vocab = Mintlify + +# This is required since Vale doesn't officially support MDX +[formats] +mdx = md + +# MDX support +[*.mdx] +BasedOnStyles = Vale +# Terms only enforces vocab casing; this is a spellcheck, so keep it off +Vale.Terms = NO + +# Token and block ignores for MDX-specific syntax +TokenIgnores = (?m)((?:import|export) .+?$), \ +(?)(?!`), \ +(<[A-Z]\w+>.+?<\/[A-Z]\w+>), \ +(<[^>]*>), \ +\{(?!/\*)[^}]*\}, \ +(`[^`]*`), \ +(?m)^openapi: .+$, \ +([\w-]+\.)+(?:json|jsonl|png|jpe?g|gif|svg|mdx?|txt|ya?ml|xml|com|dev|io|ts|js|tsx|jsx), \ +[\w-]+="[^"\n]*", \ +[\w.+-]+@[\w.-]+, \ +\(/[^)\s]*\) + +BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \ +(?sm)^({(?!/\*).+?})$, \ +(?sm)^[ \t]*```[\s\S]*?```$ + +CommentDelimiters = {/*, */} + +# Machine-translated locales: skip English prose linting +[**/cn/**] +BasedOnStyles = "" + +[**/jp/**] +BasedOnStyles = "" + +[**/ko/**] +BasedOnStyles = "" diff --git a/.vale/styles/config/vocabularies/Mintlify/accept.txt b/.vale/styles/config/vocabularies/Mintlify/accept.txt new file mode 100644 index 0000000..cff8b34 --- /dev/null +++ b/.vale/styles/config/vocabularies/Mintlify/accept.txt @@ -0,0 +1,526 @@ +# Mintlify vocabulary terms that trigger false positive Vale warnings + +ACS +Adobe +AEO +agentic +Ahrefs +AI +allOf +allowlists? +AllViewerExceptHostHeader +Anthropic +anyOf +API +apiHost +apiKey +api-playground +API's +APIs +APISection +api-server +api\.url +appId +ARIA +Astro +AsyncAPI +(?i)auth +Auth0 +(?i)autogenerat(e|ed|ing)? +(?i)automations? +(?i)automerge +(?i)autoplay +autosave(s|d)? +AVIF +axios +AWS +(?i)backlinks? +bearerAuth +Bing +blockIgnores +(?i)blockquotes? +boolean +borderRadius +(?i)breakglass +CAA +CachingDisabled +CachingEnabled +CachingOptimized +Caddy +(?i)callouts? +camelCase +(?i)captchas? +Cascade +CD +CDN +ChatGPT +Chromium +CI +CircleCI +Claude +CLAUDE\.md +Claude's +Clearbit +CLI +CloudConvert +Cloudflare +CloudFront +Cloudinary +(?i)cmd +CNAME +CodeBlock +CodeGroup +codeium/windsurf +codeSamples +Codex +codex/AGENTS\.md +Cognition +Composable +Composio +config +const +(?i)crawlable +CRMs +(?i)cron +crontab +CSM +CSP +CSS +CSV +CTAs +CTR +Ctrl +cURL +(?i)cursor +Datadog +(?i)dev +Devin +DevTools +Di(?:á|a)taxis +Discord +discoverability +Django +DMs? +DNS +DNSChecker +docs\.json +Docusaurus +DOCX +DORA +(?i)drilldown +DRY +DynamoDB +EasyList +EdDSA +Elasticsearch +ELK +Entra +(?i)enums? +Esc +example\.com/api +(?i)expandables +Express +FAQs? +(?i)favicons? +(?i)frontmatter +FullStory +Gantt +GCP +GDPR +GEO +GHES +GIF +GIFs +Git +GitBook +(?i)git (clone|pull|add|commit|push|checkout|status) +GitHub +GitLab +Golang +GraphQL +Grok +gRPC +GTM +handleInputChange +handleSubmit +hardcod(e[ds]?|ing) +hCaptcha +hcaptcha\.com +(?i)heatmaps? +Heroku +Hightouch +hostname +Hotjar +HowTo +href +(?i)hsl +HTML +HubSpot +ICO +IDE +IdP +IDs +Imgix +indexable +ingestible +IntelliJ +Intercom +internal_id +iOS +IP +isHidden +ISO +Java +JavaScript +JetBrains +Jira +JIT +JPEG +JPG +JS +JSDoc +JSON +JSON-LD +JSX +JWTs? +KaTeX +Kotlin +kubeconfig +Kubernetes +Laravel +LaTeX +launchUrl +legacy_token +LinkedIn +Linux +(?i)llms? +llmstxt +LTS +Lua +lodash +Lucide +(?i)luma +macOS +Markdown +(?i)mcp +md +MDX +measurementId +(?i)memoiz(e[ds]?|ation) +Mermaid +(?i)metatags? +minimap +(?i)mintlify +misconfiguration +(?i)Mixpanel +Mocha +mockups +MongoDB +(?i)monorepo +Multiline +myName +myObject +MySQL +namespaces? +Nango +(?i)navbar +Next.js +(?i)nginx +Node.js +(?i)noindex +Notion +npm +npx +Nuxt +NVDA +OAS +OAuth +OG +OIDC +(?i)oklch +Okta +onboarding +oneOf +openable +OpenAI +OpenAI's +(?i)openapi +org +(?i)Osano +(?i)outdent +outsized +PageSpeed +pageUrl +Pandoc +ParamField +PDF +PDFs +PHP +PII +Pirsch +Playfair +PNG +pnpm +PostgreSQL +(?i)PostHog +Postman +PowerShell +PR +prefill(s|ing|ed)? +prepend(ed|ing)? +presigned +productId +projectId +projectToken +proxied +proxying +PRs +PST +Python +QBRs +queryCategory +(?i)quickstarts? +RAG +RBAC +React +ReadMe +Readybot +(?i)rebase +rebranded +Redis +repos? +RequestExample +resolutionStatus +ResponseExample +ResponseField +reupload(s|ed|ing)? +(?i)rgba? +ROI +Ronan +RSS +RTL +Ruby +RubyGems +(?i)rulesets? +Rust +SaaS +Salesforce +SAML +sandboxed +Scala +scannability +(?i)scrollable +SDK +SDKs +SendSafely +SEO +Sequoia +sessionRecording +Shiki +siteId +SLA +Slack +slugified +SOC +Speakeasy +Splunk +Spring +Squoosh +SSL +SSO +SSR +Stainless +stderr +Storybook +(?i)strikethrough +stringif(y|ied|ies|ying) +stylesPath +(?i)subcommands? +subpaths? +subschema +(?i)subscribable +(?i)substring +SVGR +SVGs? +Swagger +Swift +Tabler +Tailwind +targetable +TensorFlow +Terraform +TextMate +timeframe +TLS +tokenIgnores +TOML +(?i)tooltips? +topbar +TrueType +TSV +TTF +TTL +Twoslash +(?i)txt +TypeDoc +TypeScript +UI +UIs +(?i)uncheck(s|ed|ing)? +ungroup(s|ed|ing)? +Unicode +Unix +unmerged +(?i)uris? +URL +URLs +useChat +UTC +UTF +UX +(?i)vercel +vercel\.json +(?i)vite +VoiceOver +VPN +VS Code +Vue +Vuex +W3C +WAF +WAI +walkthroughs? +WAVE +WCAG +WebAIM +Webflow +WebKit +WebM +WebP +WebSocket +WebStorm +(?i)webtokens? +Windsurf +Windsurf's +WOFF2? +[\w-]*openapi\.json +writeKey +X-Llms-Txt +XML +XSS +YYYY +Zapier + +# MagicBlock / Solana domain terms +_program_id +ata +atas +blockhash +composability +composable +cron +dapp +dapps +deeplink +deeplinks +deserialize +devnet +ers +fn +fortugno +frontmatter +gabriele +gachapon +gasless +getblock +getblocks +getslot +gettransaction +halborn +homomorphic +idex +keypair +keypairs +lamports +lazer +linkability +localnet +magicblock +mainnet +metaplex +nft +nfts +onramp +permissioned +picco +playsinline +pubkey +pyth +raydium +ristretto +rollup +rollups +schnorr +sendtransaction +sessionwallet +simulatetransaction +soar +sollet +solana +streamable +surfpool +tx +undelegate +undelegated +undelegates +undelegating +undelegation +undelegations +validator +validators +auditable +binance +bitmasks +bitwise +blockchain +blockchains +blockhashes +counterparties +counterparty +cpis +crypto +cryptocurrency +decompilation +deserialization +dexes +ephemeral +gacha +gameplay +geofencing +interoperate +leaderboard +leaderboards +microtransactions +onchain +pda +pdas +pers +performant +permissioning +permissionlessly +pseudocode +pseudorandom +rebalancing +reusability +revokable +rfps +rpcs +runtimes +stablecoin +topup +twaps +vrfs +websockets +whitepaper +xnft +xnfts diff --git a/pages/ephemeral-rollups-ers/introduction/ephemeral-rollup.mdx b/pages/ephemeral-rollups-ers/introduction/ephemeral-rollup.mdx index 0ca4db2..472981f 100644 --- a/pages/ephemeral-rollups-ers/introduction/ephemeral-rollup.mdx +++ b/pages/ephemeral-rollups-ers/introduction/ephemeral-rollup.mdx @@ -11,7 +11,7 @@ import Validators from "/snippets/notes/validators.mdx"; --- -## Account Lifecyle for executing transactions in real-time with ER: +## Account Lifecycle for executing transactions in real-time with ER: diff --git a/pages/ephemeral-rollups-ers/introduction/why.mdx b/pages/ephemeral-rollups-ers/introduction/why.mdx index 792b79b..b912b4f 100644 --- a/pages/ephemeral-rollups-ers/introduction/why.mdx +++ b/pages/ephemeral-rollups-ers/introduction/why.mdx @@ -53,7 +53,7 @@ The ephemeral rollup functions as a **specialized SVM runtime** and can be **cus - ✅ **Gasless Transactions** – Zero fees enabling scalability and mass adoption. - ✅ **Faster Block Times** – Sub 10ms latency for seamless UX. - ✅ **High-precision Scheduling** – Built-in automation to execute transactions. -- ✅ **Program and States Synchronization** – No fragementation, composable and upgradable. +- ✅ **Program and States Synchronization** – No fragmentation, composable and upgradable. - ✅ **Horizontal Scaling** – Multiple rollups on-demand for millions of transactions. - ✅ **Familiar Tooling** – Reusability of existing and familiar programming language, libraries and testing tools. diff --git a/pages/get-started/how-integrate-your-program/transactions.mdx b/pages/get-started/how-integrate-your-program/transactions.mdx index aa7191c..04fa3c1 100644 --- a/pages/get-started/how-integrate-your-program/transactions.mdx +++ b/pages/get-started/how-integrate-your-program/transactions.mdx @@ -3,7 +3,7 @@ title: "Transaction Flow" description: "How Different Transactions Flow Through an Ephemeral Rollup" --- -Once deployed with delegation and undelgeation hooks, any instruction which is part of your program can be executed with ultra-low latency without changes. +Once deployed with delegation and undelegation hooks, any instruction which is part of your program can be executed with ultra-low latency without changes. The **transaction will be processed** by Base Layer (Solana) or Ephemeral Rollup (ER) validators **depending on the account's delegation status**. diff --git a/pages/get-started/introduction/ephemeral-rollup.mdx b/pages/get-started/introduction/ephemeral-rollup.mdx index 960053e..28cfd63 100644 --- a/pages/get-started/introduction/ephemeral-rollup.mdx +++ b/pages/get-started/introduction/ephemeral-rollup.mdx @@ -23,7 +23,7 @@ The ephemeral rollup functions as a **specialized SVM runtime**, significantly e Programs and assets reside directly on the base layer and are fully compatible. Any improvements or advancements at the base layer are immediately available, without the need to modify or re-deploy programs. -- ✅ **Program and States Synchronization** – No fragementation. States and programs can interact with any existing protocol and assets. +- ✅ **Program and States Synchronization** – No fragmentation. States and programs can interact with any existing protocol and assets. - ✅ **Horizontal Scaling** – Launch multiple rollups on-demand and perform millions of transactions. - ✅ **Familiar Tooling** – Reuse any existing and familiar programming language, libraries and testing tools. diff --git a/pages/get-started/use-cases/depin.mdx b/pages/get-started/use-cases/depin.mdx index 5796c1a..6e90f38 100644 --- a/pages/get-started/use-cases/depin.mdx +++ b/pages/get-started/use-cases/depin.mdx @@ -1,6 +1,6 @@ --- title: DePIN -description: "Unlock the next era of real-time decentralized physical infrastucture networks" +description: "Unlock the next era of real-time decentralized physical infrastructure networks" --- #### 🔴 Problems with Infrastructure diff --git a/pages/get-started/use-cases/games.mdx b/pages/get-started/use-cases/games.mdx index 999df02..4d37533 100644 --- a/pages/get-started/use-cases/games.mdx +++ b/pages/get-started/use-cases/games.mdx @@ -57,7 +57,7 @@ In order to get a full birds eye view of all moving pieces involved with using M -### Architechture +### Architecture There are a few main components involved when building with MagicBlock: diff --git a/pages/private-ephemeral-rollups-pers/how-to-guide/access-control.mdx b/pages/private-ephemeral-rollups-pers/how-to-guide/access-control.mdx index 5713292..4e4e809 100644 --- a/pages/private-ephemeral-rollups-pers/how-to-guide/access-control.mdx +++ b/pages/private-ephemeral-rollups-pers/how-to-guide/access-control.mdx @@ -105,7 +105,7 @@ for the end-to-end flow. members and the privacy flag. Idempotent — skip if it already exists. Update Ephemeral Permission}> - Toggle the privacy flag, or add / remove / reflag members. Updates take + Toggle the privacy flag, or add / remove / re-flag members. Updates take effect immediately on the ER. Close Ephemeral Permission}> diff --git a/pages/tools/crank/implementation.mdx b/pages/tools/crank/implementation.mdx index 980f7e5..f564a30 100644 --- a/pages/tools/crank/implementation.mdx +++ b/pages/tools/crank/implementation.mdx @@ -41,7 +41,7 @@ This guide demonstrates how to implement cranks using **MagicBlock's Ephemeral R ## Core Components ### Scheduled Function -Let's take for example that you wanted to schedule the following simple increment instrcution for a counter. +Let's take for example that you wanted to schedule the following simple increment instruction for a counter. ```rust pub fn increment(ctx: Context) -> Result<()> { diff --git a/pages/tools/session-keys/introduction.mdx b/pages/tools/session-keys/introduction.mdx index 6c4d20b..a1e6eb4 100644 --- a/pages/tools/session-keys/introduction.mdx +++ b/pages/tools/session-keys/introduction.mdx @@ -5,7 +5,7 @@ description: "What are Session Keys?" Session Keys are ephemeral keys with fine-grained instruction scoping for tiered access in your Solana Programs. -Session keys are a giant leap for improving UX for users as they take away the need for repeated wallet popups while a user performs actions in-game like purchases or on-chain interactions. The expiry and access are stored at the contract level which immunes session keys from potential security vulnerabilities. The Session Keys parameters can be duration, the maximum amount of tokens spent, amount of transactions or any other function specific to your use case. +Session keys are a giant leap for improving UX for users as they take away the need for repeated wallet popups while a user performs actions in-game like purchases or on-chain interactions. The expiry and access are stored at the contract level which makes session keys immune from potential security vulnerabilities. The Session Keys parameters can be duration, the maximum amount of tokens spent, amount of transactions or any other function specific to your use case. You can also provide a layered security model which allows tiered access to a session key making sure a user’s assets are always secure and can’t be accessed by the session keys. This type of layered security is a standard model in web2 applications and provides a stronger defence against attacks and helps ensure the security of your users' asset. This is now possible in web3 with the use of Session Keys at the contract level. diff --git a/pages/tools/session-keys/security.mdx b/pages/tools/session-keys/security.mdx index 8b4da8a..39000f5 100644 --- a/pages/tools/session-keys/security.mdx +++ b/pages/tools/session-keys/security.mdx @@ -28,7 +28,7 @@ The ephemeral keypair is encrypted and safely stored in the user's browser using ### Note on IndexedDB -Web Browser is an extremely adverserial environment, no amount of security is enough there, right from cookies to session to extension's sandbox. +Web Browser is an extremely adversarial environment, no amount of security is enough there, right from cookies to session to extension's sandbox. Attackers could always inject arbitrary code via XSS or malicious extension. This is why users are discouraged from storing serious funds in a browser wallet, they are only for day to day expenses and it is really important to establish the distinction that **Session Keys are not burner wallets.** diff --git a/pages/tools/session-keys/usage-examples.mdx b/pages/tools/session-keys/usage-examples.mdx index 385034a..612eac0 100644 --- a/pages/tools/session-keys/usage-examples.mdx +++ b/pages/tools/session-keys/usage-examples.mdx @@ -12,7 +12,7 @@ Now that you have set up the hooks and provider, let's look at some examples of To create a session, call the `createSession` method from the `sessionWallet`. This method accepts three parameters: 1. `targetProgramPublicKey`: A `PublicKey` instance representing the target program you want to interact with. -2. `topUp`: A boolean value, set to `true` if you want to top up an session keypair with `0.01 SOL` initially and \`false\` if you dont want to topUp the session Keypair. +2. `topUp`: A boolean value, set to `true` if you want to top up an session keypair with `0.01 SOL` initially and \`false\` if you don't want to topUp the session Keypair. 3. `expiryInMinutes`: An optional parameter, representing the session's expiry time in minutes. The default value is 60 minutes. ```typescript diff --git a/pages/tools/solana-unity-sdk/getting-started/configuration.mdx b/pages/tools/solana-unity-sdk/getting-started/configuration.mdx index f6eaf04..5105d8c 100644 --- a/pages/tools/solana-unity-sdk/getting-started/configuration.mdx +++ b/pages/tools/solana-unity-sdk/getting-started/configuration.mdx @@ -5,7 +5,7 @@ description: "Learn how to configure your preferred wallet" Learn how to configure your preferred wallet -The SDK supports a veriety of wallets, including +The SDK supports a variety of wallets, including | Wallet | Support | Type | | ------------------------ | ------- | -------- | diff --git a/pages/tools/solana-unity-sdk/guides/dex-integration.mdx b/pages/tools/solana-unity-sdk/guides/dex-integration.mdx index ae6da21..817695c 100644 --- a/pages/tools/solana-unity-sdk/guides/dex-integration.mdx +++ b/pages/tools/solana-unity-sdk/guides/dex-integration.mdx @@ -9,7 +9,7 @@ Orca is the easiest place to trade cryptocurrency on the Solana blockchain. For ## Perform a Swap -- Create an IDex istance, providing a default account and and the RPC client istance: +- Create an IDex instance, providing a default account and the RPC client instance: ```csharp IDex dex = new OrcaDex( @@ -18,7 +18,7 @@ IDex dex = new OrcaDex( ) ``` -- Create an IDex istance: +- Create an IDex instance: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("USDC"); diff --git a/pages/tools/solana-unity-sdk/guides/jupiter.mdx b/pages/tools/solana-unity-sdk/guides/jupiter.mdx index d51ea90..1be34dc 100644 --- a/pages/tools/solana-unity-sdk/guides/jupiter.mdx +++ b/pages/tools/solana-unity-sdk/guides/jupiter.mdx @@ -12,13 +12,13 @@ Jupiter is the key liquidity aggregator for Solana, offering the widest range of ## Perform a Swap -Create an IDex istance, providing a default account: +Create an IDex instance, providing a default account: ```csharp IDexAggregator dex = new JupiterDexAg(Web3.Account); ``` -Create an IDex istance: +Create an IDex instance: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("SOL"); @@ -64,13 +64,13 @@ await Web3.Wallet.SignAndSendTransaction(tx); The Jupiter Payments API is also available, enabling you to utilize Jupiter + SolanaPay for facilitating user payments with any SPL token, allowing pricing in USDC or other tokens. -Create an IDex istance, providing a default account: +Create an IDex instance, providing a default account: ```csharp IDexAggregator dex = new JupiterDexAg(Web3.Account); ``` -Create an IDex istance: +Create an IDex instance: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("SOL"); diff --git a/pages/tools/solana-unity-sdk/guides/mint-an-nft.mdx b/pages/tools/solana-unity-sdk/guides/mint-an-nft.mdx index 1eb6252..b975ae6 100644 --- a/pages/tools/solana-unity-sdk/guides/mint-an-nft.mdx +++ b/pages/tools/solana-unity-sdk/guides/mint-an-nft.mdx @@ -24,11 +24,11 @@ var metadata = new Metadata() }; ``` -We can now construct the transaction, whichi consists of 5 istructions: +We can now construct the transaction, which consists of 5 instructions: - Creating the Mint Account -- Initilizing the Mint Account -- Creattin the AssociatedTokenAccount +- Initializing the Mint Account +- Creating the AssociatedTokenAccount - Minting the NFT - Creating the Metadata Account - Creating the Master Edition From fd9df319a8e7ba0cab98e99bd78e4f9ca87164c4 Mon Sep 17 00:00:00 2001 From: dhruvja Date: Wed, 8 Jul 2026 13:09:26 +0530 Subject: [PATCH 3/3] docs: address CodeRabbit feedback on session-keys and unity-sdk guides --- pages/tools/session-keys/introduction.mdx | 2 +- pages/tools/session-keys/usage-examples.mdx | 2 +- pages/tools/solana-unity-sdk/guides/dex-integration.mdx | 2 +- pages/tools/solana-unity-sdk/guides/jupiter.mdx | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/tools/session-keys/introduction.mdx b/pages/tools/session-keys/introduction.mdx index a1e6eb4..391da48 100644 --- a/pages/tools/session-keys/introduction.mdx +++ b/pages/tools/session-keys/introduction.mdx @@ -5,7 +5,7 @@ description: "What are Session Keys?" Session Keys are ephemeral keys with fine-grained instruction scoping for tiered access in your Solana Programs. -Session keys are a giant leap for improving UX for users as they take away the need for repeated wallet popups while a user performs actions in-game like purchases or on-chain interactions. The expiry and access are stored at the contract level which makes session keys immune from potential security vulnerabilities. The Session Keys parameters can be duration, the maximum amount of tokens spent, amount of transactions or any other function specific to your use case. +Session keys are a giant leap for improving UX for users as they take away the need for repeated wallet popups while a user performs actions in-game like purchases or on-chain interactions. The expiry and access are stored at the contract level, which reduces the exposure of session keys to potential security vulnerabilities, though it does not eliminate risks from browser compromise, malicious extensions, or application bugs. The Session Keys parameters can be duration, the maximum amount of tokens spent, amount of transactions or any other function specific to your use case. You can also provide a layered security model which allows tiered access to a session key making sure a user’s assets are always secure and can’t be accessed by the session keys. This type of layered security is a standard model in web2 applications and provides a stronger defence against attacks and helps ensure the security of your users' asset. This is now possible in web3 with the use of Session Keys at the contract level. diff --git a/pages/tools/session-keys/usage-examples.mdx b/pages/tools/session-keys/usage-examples.mdx index 612eac0..74234d5 100644 --- a/pages/tools/session-keys/usage-examples.mdx +++ b/pages/tools/session-keys/usage-examples.mdx @@ -12,7 +12,7 @@ Now that you have set up the hooks and provider, let's look at some examples of To create a session, call the `createSession` method from the `sessionWallet`. This method accepts three parameters: 1. `targetProgramPublicKey`: A `PublicKey` instance representing the target program you want to interact with. -2. `topUp`: A boolean value, set to `true` if you want to top up an session keypair with `0.01 SOL` initially and \`false\` if you don't want to topUp the session Keypair. +2. `topUp`: A boolean value, set to `true` if you want to top up a session keypair with `0.01 SOL` initially and \`false\` if you don't want to top up the session keypair. 3. `expiryInMinutes`: An optional parameter, representing the session's expiry time in minutes. The default value is 60 minutes. ```typescript diff --git a/pages/tools/solana-unity-sdk/guides/dex-integration.mdx b/pages/tools/solana-unity-sdk/guides/dex-integration.mdx index 817695c..e779129 100644 --- a/pages/tools/solana-unity-sdk/guides/dex-integration.mdx +++ b/pages/tools/solana-unity-sdk/guides/dex-integration.mdx @@ -18,7 +18,7 @@ IDex dex = new OrcaDex( ) ``` -- Create an IDex instance: +- Fetch token data: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("USDC"); diff --git a/pages/tools/solana-unity-sdk/guides/jupiter.mdx b/pages/tools/solana-unity-sdk/guides/jupiter.mdx index 1be34dc..d5309ca 100644 --- a/pages/tools/solana-unity-sdk/guides/jupiter.mdx +++ b/pages/tools/solana-unity-sdk/guides/jupiter.mdx @@ -18,7 +18,7 @@ Create an IDex instance, providing a default account: IDexAggregator dex = new JupiterDexAg(Web3.Account); ``` -Create an IDex instance: +Fetch token data: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("SOL"); @@ -70,7 +70,7 @@ Create an IDex instance, providing a default account: IDexAggregator dex = new JupiterDexAg(Web3.Account); ``` -Create an IDex instance: +Fetch token data: ```csharp TokenData tokenA = await dex.GetTokenBySymbol("SOL");