diff --git a/docs.json b/docs.json index 11788b40..ca28d8ec 100644 --- a/docs.json +++ b/docs.json @@ -40,6 +40,17 @@ ] }, "tabs": [ + { + "tab": "Solutions", + "groups": [ + { + "group": "Solutions", + "pages": [ + "solutions/overview" + ] + } + ] + }, { "tab": "Documentation", "groups": [ diff --git a/solutions/overview.mdx b/solutions/overview.mdx new file mode 100644 index 00000000..634ad9f7 --- /dev/null +++ b/solutions/overview.mdx @@ -0,0 +1,218 @@ +--- +title: "Solutions" +description: "Composable infrastructure for embedded wallets and onchain automation. Find your use case and explore working code examples." +sidebarTitle: "Overview" +mode: custom +--- + +export const ExamplesSearch = () => { + const S = "https://github.com/tkhq/sdk/tree/main/examples/"; + const R = "https://github.com/tkhq/"; + const examples = [ + { name: "Embedded Wallet", d: "Passkeys, email, OAuth", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-embedded-wallet", live: "https://wallet.tx.xyz" }, + { name: "Consumer Wallet", d: "Ethers + WalletConnect", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-consumer-wallet", live: null }, + { name: "Passkey Wallet", d: "Passkey-only wallet", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-passkey-wallet", live: null }, + { name: "EWK Demo", d: "Embedded Wallet Kit", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-ewk", live: null }, + { name: "React Embedded", d: "React embedded wallet", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-embedded-wallet-react", live: null }, + { name: "React Native", d: "Mobile wallet app", lang: "TypeScript", cat: "Demo Apps", github: R+"react-native-demo-wallet", live: null }, + { name: "Telegram Mini App", d: "TG mini app wallet", lang: "TypeScript", cat: "Demo Apps", github: R+"demo-telegram-mini-app", live: null }, + { name: "Wagmi", d: "Wagmi integration", lang: "TypeScript", cat: "Demo Apps", github: R+"wagmi-demo", live: null }, + { name: "Popup Wallet", d: "Popup-based wallet", lang: "TypeScript", cat: "Demo Apps", github: R+"popup-wallet-demo", live: null }, + { name: "Flutter", d: "iOS/Android wallet", lang: "Dart", cat: "Demo Apps", github: R+"dart-sdk/tree/main/examples/flutter-demo-app", live: null }, + { name: "Kitchen Sink", d: "All features demo", lang: "TypeScript", cat: "Demo Apps", github: S+"kitchen-sink", live: null }, + { name: "Viem Passkeys", d: "Passkeys + viem signer", lang: "TypeScript", cat: "Auth", github: R+"demo-viem-passkeys", live: null }, + { name: "Ethers Passkeys", d: "Passkeys + ethers signer", lang: "TypeScript", cat: "Auth", github: R+"demo-ethers-passkeys", live: null }, + { name: "Federated Passkeys", d: "WebAuthn federation", lang: "TypeScript", cat: "Auth", github: S+"with-federated-passkeys", live: null }, + { name: "ETH Passkeys Galore", d: "Multiple passkey flows", lang: "TypeScript", cat: "Auth", github: S+"with-eth-passkeys-galore", live: null }, + { name: "Solana Passkeys", d: "Passkeys on Solana", lang: "TypeScript", cat: "Auth", github: S+"with-solana-passkeys", live: null }, + { name: "Email Auth", d: "Email-based login", lang: "TypeScript", cat: "Auth", github: S+"email-auth", live: null }, + { name: "Email + Local Storage", d: "Email auth w/ persistence", lang: "TypeScript", cat: "Auth", github: S+"email-auth-local-storage", live: null }, + { name: "Magic Link", d: "Passwordless email links", lang: "TypeScript", cat: "Auth", github: S+"magic-link-auth", live: null }, + { name: "OTP Auth", d: "One-time passcodes", lang: "TypeScript", cat: "Auth", github: S+"otp-auth", live: null }, + { name: "OAuth", d: "Social login providers", lang: "TypeScript", cat: "Auth", github: S+"oauth", live: null }, + { name: "Wallet Auth", d: "Sign-in with wallet", lang: "TypeScript", cat: "Auth", github: S+"wallet-auth", live: null }, + { name: "Offline Signing", d: "Offline request signing", lang: "TypeScript", cat: "Auth", github: S+"with-offline", live: null }, + { name: "Delegated Access", d: "Sub-org policy delegation", lang: "TypeScript", cat: "Auth", github: S+"delegated-access", live: null }, + { name: "Delegated Signing", d: "Delegated key access", lang: "TypeScript", cat: "Auth", github: S+"with-delegated", live: null }, + { name: "Ethers", d: "Sign + broadcast via Ethers", lang: "TypeScript", cat: "EVM", github: S+"with-ethers", live: null }, + { name: "Viem", d: "Turnkey Custom Account", lang: "TypeScript", cat: "EVM", github: S+"with-viem", live: null }, + { name: "EIP-1193 Provider", d: "Standard ETH provider", lang: "TypeScript", cat: "EVM", github: S+"with-eip-1193-provider", live: null }, + { name: "Gnosis Safe", d: "Multisig transactions", lang: "TypeScript", cat: "EVM", github: S+"with-gnosis", live: null }, + { name: "Nonce Manager", d: "Sequential/optimistic txs", lang: "TypeScript", cat: "EVM", github: S+"with-nonce-manager", live: null }, + { name: "Wallet Stamper", d: "External wallet stamping", lang: "TypeScript", cat: "EVM", github: S+"with-wallet-stamper", live: null }, + { name: "Porto", d: "Porto integration", lang: "TypeScript", cat: "EVM", github: S+"with-porto", live: null }, + { name: "Solana", d: "SPL tokens + Jupiter swaps", lang: "TypeScript", cat: "Multi-chain", github: S+"with-solana", live: null }, + { name: "Bitcoin", d: "Construct + broadcast BTC tx", lang: "TypeScript", cat: "Multi-chain", github: S+"with-bitcoin", live: null }, + { name: "Cosmos (CosmJS)", d: "Celestia testnet signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-cosmjs", live: null }, + { name: "Sui", d: "Sign + broadcast Sui tx", lang: "TypeScript", cat: "Multi-chain", github: S+"with-sui", live: null }, + { name: "IOTA", d: "IOTA transaction signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-iota", live: null }, + { name: "Aptos", d: "Aptos transaction signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-aptos", live: null }, + { name: "Movement", d: "Movement chain signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-movement", live: null }, + { name: "Tron", d: "TRC-20 + TRX transfers", lang: "TypeScript", cat: "Multi-chain", github: S+"with-tron", live: null }, + { name: "TON", d: "TON blockchain signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-ton", live: null }, + { name: "Stacks", d: "STX transaction signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-stacks", live: null }, + { name: "Doge", d: "DOGE transaction signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-doge", live: null }, + { name: "Tempo", d: "Tempo chain signing", lang: "TypeScript", cat: "Multi-chain", github: S+"with-tempo", live: null }, + { name: "Uniswap", d: "V3 swap via Ethers", lang: "TypeScript", cat: "DeFi", github: S+"with-uniswap", live: null }, + { name: "0x", d: "DEX aggregator swap", lang: "TypeScript", cat: "DeFi", github: S+"with-0x", live: null }, + { name: "Jupiter", d: "Solana DEX aggregator", lang: "TypeScript", cat: "DeFi", github: S+"with-jupiter", live: null }, + { name: "Morpho", d: "Lending + borrowing", lang: "TypeScript", cat: "DeFi", github: S+"with-morpho", live: null }, + { name: "Aave", d: "DeFi lending protocol", lang: "TypeScript", cat: "DeFi", github: S+"with-aave", live: null }, + { name: "Li.Fi", d: "Cross-chain bridge + swap", lang: "TypeScript", cat: "DeFi", github: S+"with-lifi", live: null }, + { name: "Breeze", d: "Breeze protocol integration", lang: "TypeScript", cat: "DeFi", github: S+"with-breeze", live: null }, + { name: "Yield XYZ", d: "Yield protocol integration", lang: "TypeScript", cat: "DeFi", github: S+"with-yield-xyz", live: null }, + { name: "Arc", d: "Arc protocol integration", lang: "TypeScript", cat: "DeFi", github: S+"with-arc", live: null }, + { name: "x402", d: "HTTP 402 payments", lang: "TypeScript", cat: "DeFi", github: S+"with-x402", live: null }, + { name: "ETH USDC Swap", d: "EVM stablecoin swap", lang: "TypeScript", cat: "DeFi", github: S+"eth-usdc-swap", live: null }, + { name: "Solana USDC Swap", d: "Solana stablecoin swap", lang: "TypeScript", cat: "DeFi", github: S+"solana-usdc-swap", live: null }, + { name: "Gas Station", d: "Turnkey gas sponsorship", lang: "TypeScript", cat: "Gas and AA", github: S+"tk-gas-station", live: null }, + { name: "EVM Paymaster", d: "ERC-4337 gas sponsorship", lang: "TypeScript", cat: "Gas and AA", github: S+"with-paymaster", live: null }, + { name: "Solana Paymaster", d: "Solana gas sponsorship", lang: "TypeScript", cat: "Gas and AA", github: S+"with-solana-paymaster", live: null }, + { name: "Biconomy AA", d: "Biconomy smart accounts", lang: "TypeScript", cat: "Gas and AA", github: S+"with-biconomy-aa", live: null }, + { name: "ZeroDev AA", d: "ZeroDev smart accounts", lang: "TypeScript", cat: "Gas and AA", github: S+"with-zerodev-aa", live: null }, + { name: "Trading Runner", d: "Multi-key Uniswap trading", lang: "TypeScript", cat: "Automation", github: S+"trading-runner", live: null }, + { name: "Rebalancer", d: "Portfolio rebalancing", lang: "TypeScript", cat: "Automation", github: S+"rebalancer", live: null }, + { name: "Sweeper", d: "EVM fund sweeping", lang: "TypeScript", cat: "Automation", github: S+"sweeper", live: null }, + { name: "Solana Sweeper", d: "Solana fund sweeping", lang: "TypeScript", cat: "Automation", github: S+"solana-sweeper", live: null }, + { name: "Deployer", d: "Smart contract deployment", lang: "TypeScript", cat: "Automation", github: S+"deployer", live: null }, + { name: "Balances", d: "Query wallet balances", lang: "TypeScript", cat: "Automation", github: S+"with-balances", live: null }, + { name: "Export + Sign", d: "Export wallet and sign", lang: "TypeScript", cat: "Wallet Ops", github: S+"wallet-export-sign", live: null }, + { name: "Import/Export (iFrame)", d: "Via iframe stamper", lang: "TypeScript", cat: "Wallet Ops", github: S+"import-export-with-iframe-stamper", live: null }, + { name: "Import/Export (RWK)", d: "Via recovery key", lang: "TypeScript", cat: "Wallet Ops", github: S+"import-export-with-rwk", live: null }, + { name: "Import (Node)", d: "Server-side import", lang: "TypeScript", cat: "Wallet Ops", github: S+"import-in-node", live: null }, + { name: "Export (Node)", d: "Server-side export", lang: "TypeScript", cat: "Wallet Ops", github: S+"export-in-node", live: null }, + { name: "Export + Sign Escrow", d: "Escrow key export", lang: "TypeScript", cat: "Wallet Ops", github: S+"with-export-and-sign-escrow", live: null }, + { name: "Disaster Recovery", d: "Key backup + restore", lang: "TypeScript", cat: "Wallet Ops", github: S+"disaster-recovery", live: null }, + { name: "Key Escrow", d: "Encryption key escrow", lang: "TypeScript", cat: "Wallet Ops", github: S+"encryption-key-escrow", live: null }, + { name: "React Components", d: "Pre-built UI components", lang: "TypeScript", cat: "Frameworks", github: S+"react-components", live: null }, + { name: "React Wallet Kit", d: "Wallet kit for React", lang: "TypeScript", cat: "Frameworks", github: S+"react-wallet-kit", live: null }, + { name: "RN Wallet Kit", d: "Wallet kit for React Native", lang: "TypeScript", cat: "Frameworks", github: S+"with-react-native-wallet-kit", live: null }, + { name: "IndexedDB", d: "Browser key persistence", lang: "TypeScript", cat: "Frameworks", github: S+"with-indexed-db", live: null }, + { name: "SDK Browser", d: "Client-side SDK usage", lang: "TypeScript", cat: "Frameworks", github: S+"with-sdk-js", live: null }, + { name: "SDK Server", d: "Server-side SDK usage", lang: "TypeScript", cat: "Frameworks", github: S+"with-sdk-server", live: null }, + { name: "Twitter Auth", d: "X/Twitter OAuth", lang: "TypeScript", cat: "Frameworks", github: S+"with-x", live: null }, + { name: "Foundry", d: "Foundry forge integration", lang: "TypeScript", cat: "Frameworks", github: S+"foundry", live: null }, + { name: "TypeScript", d: "Browser, server, React, RN", lang: "TypeScript", cat: "SDKs", github: R+"sdk", live: null }, + { name: "Go", d: "API client + request signing", lang: "Go", cat: "SDKs", github: R+"go-sdk", live: null }, + { name: "Rust", d: "Generated client + stamping", lang: "Rust", cat: "SDKs", github: R+"rust-sdk", live: null }, + { name: "Python", d: "API stamper utility", lang: "Python", cat: "SDKs", github: R+"python-sdk", live: null }, + { name: "Swift", d: "iOS + macOS integration", lang: "Swift", cat: "SDKs", github: R+"swift-sdk", live: null }, + { name: "Kotlin", d: "Android wallet integration", lang: "Kotlin", cat: "SDKs", github: R+"kotlin-sdk", live: null }, + { name: "Dart", d: "Flutter mobile integration", lang: "Dart", cat: "SDKs", github: R+"dart-sdk", live: null }, + ]; + const categories = ["Demo Apps", "Auth", "EVM", "Multi-chain", "DeFi", "Gas and AA", "Automation", "Wallet Ops", "Frameworks", "SDKs"]; + const langColors = { TypeScript: "#3178C6", Go: "#00ADD8", Rust: "#CE422B", Python: "#3572A5", Dart: "#0175C2", Swift: "#F05138", Kotlin: "#A97BFF" }; + const [query, setQuery] = React.useState(""); + const filtered = query + ? examples.filter((ex) => [ex.name, ex.d, ex.lang, ex.cat].join(" ").toLowerCase().includes(query.toLowerCase())) + : examples; + const visibleCats = categories.filter((cat) => filtered.some((ex) => ex.cat === cat)); + return ( +
Find your use case and explore working code examples.
+Explore working code examples from GitHub. Filter by name, language, or category.
+