├── .npmrc ├── examples ├── n8n-solana-agent │ ├── index.js │ ├── .npmignore │ ├── .gitignore │ ├── .editorconfig │ ├── .eslintrc.prepublish.js │ └── gulpfile.js ├── embedded-wallets │ ├── privy-agent-tanstack-starter │ │ ├── .nvmrc │ │ ├── public │ │ │ ├── icons │ │ │ │ ├── dexscreener.svg │ │ │ │ ├── dexscreener.png │ │ │ │ ├── twitter-x.svg │ │ │ │ └── website.svg │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── logos │ │ │ │ └── sendai-logo.png │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── token-logos │ │ │ │ ├── bonk-logo.png │ │ │ │ ├── jito-logo.png │ │ │ │ ├── jup-logo.png │ │ │ │ └── send-logo.png │ │ │ ├── logo.svg │ │ │ └── site.webmanifest │ │ ├── db │ │ │ └── migrations │ │ │ │ └── meta │ │ │ │ └── _journal.json │ │ ├── tailwind.config.mjs │ │ ├── postcss.config.mjs │ │ ├── src │ │ │ ├── api.ts │ │ │ ├── utils │ │ │ │ └── session.ts │ │ │ ├── client.tsx │ │ │ ├── components │ │ │ │ └── ui │ │ │ │ │ ├── skeleton.tsx │ │ │ │ │ └── icon.tsx │ │ │ ├── functions │ │ │ │ └── markdown.ts │ │ │ ├── ssr.tsx │ │ │ ├── routes │ │ │ │ ├── _authed │ │ │ │ │ ├── chats.route.tsx │ │ │ │ │ └── chats.index.tsx │ │ │ │ └── _authed.tsx │ │ │ ├── types │ │ │ │ └── token.ts │ │ │ └── hooks │ │ │ │ └── use-mobile.ts │ │ ├── drizzle.config.ts │ │ ├── components.json │ │ ├── vercel.json │ │ ├── tsconfig.json │ │ └── .env.example │ ├── crossmint-sak-v2 │ │ ├── public │ │ │ ├── icons │ │ │ │ ├── dexscreener.svg │ │ │ │ ├── dexscreener.png │ │ │ │ ├── twitter-x.svg │ │ │ │ └── website.svg │ │ │ ├── banner.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── logos │ │ │ │ └── sendai-logo.png │ │ │ ├── token-logos │ │ │ │ ├── bonk-logo.png │ │ │ │ ├── jito-logo.png │ │ │ │ ├── jup-logo.png │ │ │ │ └── send-logo.png │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── logo.svg │ │ │ └── site.webmanifest │ │ ├── db │ │ │ └── migrations │ │ │ │ ├── 0008_big_kang.sql │ │ │ │ ├── 0009_slimy_sleeper.sql │ │ │ │ ├── 0006_lyrical_firebird.sql │ │ │ │ ├── 0007_naive_mongu.sql │ │ │ │ ├── 0004_odd_slayback.sql │ │ │ │ ├── 0011_nebulous_doctor_strange.sql │ │ │ │ ├── 0003_cloudy_glorian.sql │ │ │ │ ├── 0012_watery_sheva_callister.sql │ │ │ │ ├── meta │ │ │ │ └── _journal.json │ │ │ │ ├── 0010_nervous_omega_red.sql │ │ │ │ └── 0000_keen_devos.sql │ │ ├── .prettierignore │ │ ├── tailwind.config.mjs │ │ ├── postcss.config.mjs │ │ ├── vercel.json │ │ ├── src │ │ │ ├── api.ts │ │ │ ├── utils │ │ │ │ └── session.ts │ │ │ ├── client.tsx │ │ │ ├── components │ │ │ │ ├── ui │ │ │ │ │ ├── skeleton.tsx │ │ │ │ │ └── icon.tsx │ │ │ │ └── CrossmintProvider.tsx │ │ │ ├── ssr.tsx │ │ │ ├── functions │ │ │ │ └── markdown.ts │ │ │ ├── routes │ │ │ │ ├── _authed │ │ │ │ │ ├── chats.route.tsx │ │ │ │ │ └── chats.index.tsx │ │ │ │ └── _authed.tsx │ │ │ ├── types │ │ │ │ └── token.ts │ │ │ └── hooks │ │ │ │ └── use-mobile.ts │ │ ├── .gitignore │ │ ├── drizzle.config.ts │ │ ├── components.json │ │ ├── tsconfig.json │ │ └── .env.example │ ├── para-plugin-example │ │ ├── .prettierrc.json │ │ ├── .eslintrc.json │ │ ├── utils │ │ │ ├── para.ts │ │ │ ├── init.ts │ │ │ └── solana.ts │ │ ├── postcss.config.js │ │ ├── public │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── og-image.png │ │ │ │ └── title-card.png │ │ ├── app │ │ │ └── api │ │ │ │ └── usershare │ │ │ │ └── db.ts │ │ ├── lib │ │ │ └── utils.ts │ │ ├── next.config.js │ │ ├── .env.example │ │ ├── components │ │ │ └── WalletDisplay.tsx │ │ ├── components.json │ │ └── .gitignore │ ├── privy-sak-react-native │ │ ├── android │ │ │ ├── app │ │ │ │ ├── src │ │ │ │ │ ├── main │ │ │ │ │ │ └── res │ │ │ │ │ │ │ ├── values-night │ │ │ │ │ │ │ └── colors.xml │ │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── colors.xml │ │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ │ ├── drawable-hdpi │ │ │ │ │ │ │ └── splashscreen_logo.png │ │ │ │ │ │ │ ├── drawable-mdpi │ │ │ │ │ │ │ └── splashscreen_logo.png │ │ │ │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ │ │ └── splashscreen_logo.png │ │ │ │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ │ │ └── splashscreen_logo.png │ │ │ │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ │ │ └── splashscreen_logo.png │ │ │ │ │ │ │ └── drawable │ │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ └── debug │ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── debug.keystore │ │ │ │ └── proguard-rules.pro │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ └── .gitignore │ │ ├── ios │ │ │ ├── PrivySAKReactNative │ │ │ │ ├── Images.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── App-Icon-1024x1024@1x.png │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── SplashScreenBackground.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── noop-file.swift │ │ │ │ ├── PrivySAKReactNative-Bridging-Header.h │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── main.m │ │ │ │ ├── PrivySAKReactNative.entitlements │ │ │ │ └── Supporting │ │ │ │ │ └── Expo.plist │ │ │ ├── Podfile.properties.json │ │ │ ├── PrivySAKReactNative.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ │ ├── .gitignore │ │ │ └── .xcode.env │ │ ├── server │ │ │ ├── .env.example │ │ │ ├── routes │ │ │ │ ├── fileRoutes.ts │ │ │ │ └── userRoutes.ts │ │ │ ├── tsconfig.json │ │ │ └── models │ │ │ │ └── Chat.ts │ │ ├── src │ │ │ ├── theme │ │ │ │ └── index.ts │ │ │ ├── types │ │ │ │ ├── custom.d.ts │ │ │ │ └── env.d.ts │ │ │ ├── walletProviders │ │ │ │ ├── components │ │ │ │ │ └── wallet │ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── types │ │ │ │ │ └── index.ts │ │ │ ├── assets │ │ │ │ ├── svgs │ │ │ │ │ ├── Back.svg │ │ │ │ │ ├── arrow.svg │ │ │ │ │ ├── ArrowDown.svg │ │ │ │ │ ├── Vector.svg │ │ │ │ │ ├── cnft-badge.svg │ │ │ │ │ ├── nft-badge.svg │ │ │ │ │ ├── bottom-rect.svg │ │ │ │ │ ├── explore-icon-selected.svg │ │ │ │ │ ├── explore-icon.svg │ │ │ │ │ ├── bookmark-idle.svg │ │ │ │ │ ├── Close.svg │ │ │ │ │ ├── bookmark-active.svg │ │ │ │ │ ├── error-icon.svg │ │ │ │ │ ├── share-idle.svg │ │ │ │ │ ├── addBtn.svg │ │ │ │ │ ├── profile-icon.svg │ │ │ │ │ ├── profile-icon-selected.svg │ │ │ │ │ ├── empty-box.svg │ │ │ │ │ ├── blink-eye.svg │ │ │ │ │ ├── retweet-idle.svg │ │ │ │ │ ├── device.svg │ │ │ │ │ ├── magnifying-glass.svg │ │ │ │ │ ├── magnifying-glass-selected.svg │ │ │ │ │ ├── pin-location.svg │ │ │ │ │ ├── reaction-idle.svg │ │ │ │ │ ├── Swap.svg │ │ │ │ │ ├── grid-icon.svg │ │ │ │ │ ├── token-icon.svg │ │ │ │ │ └── Union.svg │ │ │ │ └── svg │ │ │ │ │ ├── CloseIcon.tsx │ │ │ │ │ └── SearchIcon.tsx │ │ │ └── hooks │ │ │ │ └── useReduxHooks.ts │ │ ├── .eslintrc.js │ │ ├── .prettierrc.js │ │ ├── tsconfig.json │ │ ├── index.js │ │ ├── babel.config.js │ │ ├── Gemfile │ │ └── .env.local.example │ ├── phantom-agent-starter │ │ ├── .eslintrc.json │ │ ├── .env.local.example │ │ ├── postcss.config.js │ │ ├── public │ │ │ ├── sendai.jpg │ │ │ ├── icons │ │ │ │ └── user-icon.png │ │ │ ├── fonts │ │ │ │ └── inter │ │ │ │ │ ├── Inter-Bold.woff2 │ │ │ │ │ ├── Inter-Regular.woff2 │ │ │ │ │ └── Inter-SemiBold.woff2 │ │ │ ├── eth.svg │ │ │ ├── eth-hover.svg │ │ │ ├── logos │ │ │ │ └── x-logo.svg │ │ │ └── facebook.svg │ │ ├── next.config.js │ │ ├── tailwind.config.js │ │ └── .gitignore │ └── turnkey-agent-starter │ │ ├── .eslintrc.json │ │ ├── postcss.config.js │ │ ├── next.config.js │ │ ├── public │ │ ├── icons │ │ │ └── user-icon.png │ │ ├── fonts │ │ │ └── inter │ │ │ │ ├── Inter-Bold.woff2 │ │ │ │ ├── Inter-Regular.woff2 │ │ │ │ └── Inter-SemiBold.woff2 │ │ ├── eth.svg │ │ ├── eth-hover.svg │ │ ├── logos │ │ │ └── x-logo.svg │ │ └── facebook.svg │ │ ├── tailwind.config.js │ │ └── .gitignore ├── misc │ ├── agent-kit-nextjs-langchain │ │ ├── .prettierrc.json │ │ ├── .eslintrc.json │ │ ├── .env.example │ │ ├── postcss.config.js │ │ ├── public │ │ │ └── images │ │ │ │ ├── favicon.ico │ │ │ │ ├── og-image.png │ │ │ │ └── title-card.png │ │ ├── next.config.js │ │ ├── app │ │ │ └── globals.css │ │ ├── tailwind.config.js │ │ └── .gitignore │ ├── agent-kit-langgraph │ │ ├── .env.example │ │ ├── assets │ │ │ └── architecture.png │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── persistent-agent │ │ └── .env.example │ ├── privy-server-wallet-agent │ │ ├── app │ │ │ ├── (auth) │ │ │ │ └── api │ │ │ │ │ └── auth │ │ │ │ │ └── [...nextauth] │ │ │ │ │ └── route.ts │ │ │ ├── favicon.ico │ │ │ └── (chat) │ │ │ │ ├── twitter-image.png │ │ │ │ └── opengraph-image.png │ │ ├── public │ │ │ └── images │ │ │ │ ├── demo-thumbnail.png │ │ │ │ └── mouth of the seine, monet.jpg │ │ ├── lib │ │ │ ├── privy.ts │ │ │ ├── constants.ts │ │ │ ├── db │ │ │ │ └── migrations │ │ │ │ │ └── meta │ │ │ │ │ └── _journal.json │ │ │ ├── editor │ │ │ │ └── react-renderer.tsx │ │ │ └── ai │ │ │ │ ├── models.ts │ │ │ │ └── tools │ │ │ │ └── get-weather.ts │ │ ├── postcss.config.mjs │ │ ├── next-env.d.ts │ │ ├── middleware.ts │ │ ├── artifacts │ │ │ └── actions.ts │ │ ├── components │ │ │ ├── theme-provider.tsx │ │ │ ├── ui │ │ │ │ └── skeleton.tsx │ │ │ └── sign-out-form.tsx │ │ ├── next.config.ts │ │ ├── drizzle.config.ts │ │ ├── components.json │ │ ├── LICENSE │ │ ├── hooks │ │ │ └── use-mobile.tsx │ │ └── tests │ │ │ └── reasoning.setup.ts │ └── orbofi-personality-engine │ │ └── .env.example ├── mcp │ └── agent-kit-mcp-server │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ └── claude_desktop_config.json ├── defi │ ├── market-making-agent │ │ ├── .env.example │ │ └── package.json │ ├── okx-dex-starter │ │ ├── run.sh │ │ ├── .env.example │ │ └── package.json │ └── wormhole-nextjs-agent │ │ ├── postcss.config.mjs │ │ ├── app │ │ └── favicon.ico │ │ ├── public │ │ ├── vercel.svg │ │ ├── window.svg │ │ ├── file.svg │ │ └── wormhole-logo.svg │ │ ├── next.config.ts │ │ ├── .example.env │ │ ├── eslint.config.mjs │ │ ├── tailwind.config.js │ │ ├── .gitignore │ │ ├── components │ │ └── ui │ │ │ └── card.tsx │ │ └── tsconfig.json └── social │ ├── discord-bot-starter │ ├── .gitignore │ ├── .env.template │ ├── .prettierrc │ └── tsconfig.json │ └── tg-bot-starter │ ├── basic-tg-bot │ ├── .env.example │ ├── src │ │ └── app │ │ │ ├── favicon.ico │ │ │ └── globals.css │ ├── public │ │ ├── vercel.svg │ │ ├── window.svg │ │ └── file.svg │ ├── postcss.config.mjs │ ├── next.config.ts │ ├── tailwind.config.ts │ └── .gitignore │ ├── privy-tg-bot │ ├── .env.example │ ├── db │ │ ├── index.ts │ │ └── schema.ts │ ├── drizzle.config.ts │ ├── README.md │ ├── .gitignore │ └── tsconfig.json │ ├── group-tg-bot │ ├── src │ │ └── app │ │ │ ├── favicon.ico │ │ │ └── globals.css │ ├── public │ │ ├── vercel.svg │ │ ├── window.svg │ │ └── file.svg │ ├── postcss.config.mjs │ ├── next.config.ts │ ├── .env.example │ ├── tailwind.config.ts │ └── .gitignore │ └── advanced-tg-bot │ ├── public │ ├── vercel.svg │ ├── file.svg │ └── window.svg │ ├── src │ └── app │ │ ├── favicon.ico │ │ └── globals.css │ ├── postcss.config.mjs │ ├── next.config.ts │ ├── .env.example │ ├── tailwind.config.ts │ └── .gitignore ├── packages ├── plugin-nft │ ├── src │ │ ├── magiceden │ │ │ ├── types.ts │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── constants.ts │ │ ├── tensor │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── 3land │ │ │ ├── index.ts │ │ │ └── actions │ │ │ │ └── index.ts │ │ └── metaplex │ │ │ └── tools │ │ │ ├── index.ts │ │ │ └── search_assets.ts │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ └── CHANGELOG.md ├── plugin-token │ ├── src │ │ ├── solana │ │ │ ├── types │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── tools │ │ │ │ ├── get_wallet_address.ts │ │ │ │ ├── index.ts │ │ │ │ └── get_tps.ts │ │ │ └── actions │ │ │ │ └── index.ts │ │ ├── mayan │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── rugcheck │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── pyth │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── dexscreener │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── pumpfun │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── lightprotocol │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ └── jupiter │ │ │ ├── index.ts │ │ │ ├── actions │ │ │ └── index.ts │ │ │ └── tools │ │ │ ├── index.ts │ │ │ ├── get_open_limit_orders.ts │ │ │ └── get_limit_order_history.ts │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ └── CHANGELOG.md ├── plugin-defi │ ├── src │ │ ├── manifest │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types │ │ │ │ └── index.ts │ │ ├── adrena │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── solayer │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── openbook │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── drift │ │ │ └── tools │ │ │ │ ├── index.ts │ │ │ │ └── utils │ │ │ │ └── contants.ts │ │ ├── debridge │ │ │ ├── constants.ts │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── flash │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types │ │ │ │ └── index.ts │ │ ├── lulo │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── meteora │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── pumpfunAmm │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── voltr │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── sanctum │ │ │ ├── constants │ │ │ │ └── index.ts │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── okx │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── raydium │ │ │ └── index.ts │ │ └── orca │ │ │ └── tools │ │ │ └── index.ts │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ └── CHANGELOG.md ├── plugin-misc │ ├── src │ │ ├── messari │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types.ts │ │ ├── switchboard │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── constants.ts │ │ ├── gibwork │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types │ │ │ │ └── index.ts │ │ ├── homomemetus │ │ │ ├── index.ts │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ └── tools │ │ │ │ ├── index.ts │ │ │ │ ├── fetch_token_by_mint.ts │ │ │ │ ├── fetch_token_by_creator.ts │ │ │ │ └── fetch_tokens_by_mints.ts │ │ ├── solanafm │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types.ts │ │ ├── ottersec │ │ │ ├── index.ts │ │ │ ├── actions │ │ │ │ └── index.ts │ │ │ ├── tools │ │ │ │ ├── index.ts │ │ │ │ └── get_verified_programs.ts │ │ │ └── constants │ │ │ │ └── index.ts │ │ ├── allora │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── alldomains │ │ │ └── tools │ │ │ │ ├── index.ts │ │ │ │ └── get_all_domains_tlds.ts │ │ ├── crossmint │ │ │ └── constants.ts │ │ ├── helius │ │ │ ├── tools │ │ │ │ └── index.ts │ │ │ └── types.ts │ │ ├── sns │ │ │ └── tools │ │ │ │ └── index.ts │ │ ├── coingecko │ │ │ └── tools │ │ │ │ └── index.ts │ │ └── squads │ │ │ └── tools │ │ │ └── index.ts │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ └── CHANGELOG.md ├── plugin-blinks │ ├── src │ │ └── sendarcade │ │ │ └── tools │ │ │ └── index.ts │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ ├── CHANGELOG.md │ └── README.md ├── core │ ├── .npmignore │ ├── tsconfig.cjs.json │ ├── CHANGELOG.md │ ├── tsconfig.json │ └── src │ │ ├── utils │ │ └── zod.ts │ │ └── index.ts └── adapter-mcp │ ├── .npmignore │ ├── tsconfig.cjs.json │ └── tsconfig.json ├── test ├── .env.example ├── tsconfig.json └── agentTests │ └── index.ts ├── .lintstagedrc ├── .npmignore ├── docs ├── v2 │ └── fraction │ │ └── assets │ │ └── header.png ├── @solana-agent-kit │ ├── plugin-blinks │ │ └── README.md │ └── adapter-mcp │ │ └── type-aliases │ │ └── MCPSchemaShape.md ├── README.md ├── solana-agent-kit │ ├── variables │ │ └── feeTiers.md │ └── functions │ │ ├── getActionExamples.md │ │ └── createVercelAITools.md └── v1 │ └── functions │ ├── getActionExamples.mdx │ ├── findAction.mdx │ └── createVercelAITools.mdx ├── .gitignore ├── pnpm-workspace.yaml ├── turbo.json ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .env.example └── tsconfig.json /.npmrc: -------------------------------------------------------------------------------- 1 | publish-branch=v2 -------------------------------------------------------------------------------- /examples/n8n-solana-agent/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/magiceden/types.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/types/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/.nvmrc: -------------------------------------------------------------------------------- 1 | 18 2 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/.prettierrc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /examples/n8n-solana-agent/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.tsbuildinfo 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/icons/dexscreener.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/.prettierrc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/mayan/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./swap"; 2 | -------------------------------------------------------------------------------- /test/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/icons/dexscreener.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/mcp/agent-kit-mcp-server/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules 3 | build 4 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/tensor/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./tensor_trade"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/rugcheck/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./rugcheck"; 2 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/manifest/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./manifest_trade"; 2 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/messari/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./ask_messari_ai"; 2 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/switchboard/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./simulate_feed"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pyth/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./pythFetchPrice"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pyth/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./pyth_fetch_price"; 2 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/adrena/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./adrena_perp_trading"; 2 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/solayer/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./stake_with_solayer"; 2 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/gibwork/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./create_gibwork_task"; 2 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/3land/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./tools/create_3land_collectible"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/dexscreener/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./getTokenData"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/dexscreener/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_token_data"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pumpfun/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./launchPumpfunToken"; 2 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "**/*.+(ts|tsx)": [ 3 | "eslint . --ext .ts --fix" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /examples/defi/market-making-agent/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= -------------------------------------------------------------------------------- /packages/plugin-blinks/src/sendarcade/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./rock_paper_scissor"; 2 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/openbook/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./openbook_create_market"; 2 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/3land/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./create3LandCollectibleAction"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/lightprotocol/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./compressedAirdrop"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/rugcheck/actions/index.ts: -------------------------------------------------------------------------------- 1 | // TODO: Add actions here 2 | export {}; 3 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-langgraph/.env.example: -------------------------------------------------------------------------------- 1 | RPC_URL= 2 | SOLANA_PRIVATE_KEY= 3 | OPENAI_API_KEY= 4 | -------------------------------------------------------------------------------- /packages/plugin-token/src/lightprotocol/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./send_compressed_airdrop"; 2 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pumpfun/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pyth/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/rugcheck/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/dexscreener/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/lightprotocol/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/drift/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./drift"; 2 | export * from "./drift_vault"; 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0008_big_kang.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" DROP COLUMN "password"; -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /examples/misc/persistent-agent/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= 4 | POSTGRES_DB_URL= -------------------------------------------------------------------------------- /packages/plugin-defi/src/debridge/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEBRIDGE_API = "https://dln.debridge.finance/v1.0"; 2 | -------------------------------------------------------------------------------- /examples/defi/okx-dex-starter/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | NODE_OPTIONS="--no-warnings" ts-node examples/okx-dex-starter/index.ts -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/.prettierignore: -------------------------------------------------------------------------------- 1 | **/build 2 | **/public 3 | pnpm-lock.yaml 4 | routeTree.gen.ts -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0009_slimy_sleeper.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" DROP COLUMN "walletId"; -------------------------------------------------------------------------------- /packages/plugin-defi/src/flash/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./flash_open_trade"; 2 | export * from "./flash_close_trade"; 3 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/solanafm/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./parse_account"; 2 | export * from "./parse_instruction"; 3 | -------------------------------------------------------------------------------- /packages/plugin-token/src/pumpfun/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./launchPumpfunToken"; 2 | export * from "./claimCreatorFee"; -------------------------------------------------------------------------------- /docs/v2/fraction/assets/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/docs/v2/fraction/assets/header.png -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/utils/para.ts: -------------------------------------------------------------------------------- 1 | 'use client' 2 | export { para } from './init'; 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/app/(auth)/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- 1 | export { GET, POST } from '@/app/(auth)/auth'; 2 | -------------------------------------------------------------------------------- /examples/social/discord-bot-starter/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | *.log 3 | .DS_Store 4 | 5 | logs/ 6 | node_modules/ 7 | build/ 8 | dist/ 9 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= 4 | TELEGRAM_BOT_TOKEN= -------------------------------------------------------------------------------- /packages/core/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /packages/plugin-token/src/jupiter/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | export * from "./types"; 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0006_lyrical_firebird.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ADD COLUMN "walletId" varchar(64); -------------------------------------------------------------------------------- /examples/social/discord-bot-starter/.env.template: -------------------------------------------------------------------------------- 1 | DISCORD_BOT_TOKEN= 2 | SOLANA_PRIVATE_KEY= 3 | SOLANA_RPC_URL= 4 | OPENAI_API_KEY= 5 | -------------------------------------------------------------------------------- /packages/adapter-mcp/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /packages/plugin-defi/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /packages/plugin-misc/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /packages/plugin-nft/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0007_naive_mongu.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ALTER COLUMN "walletId" SET DATA TYPE text; -------------------------------------------------------------------------------- /packages/plugin-blinks/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/lulo/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./lend"; 2 | export * from "./lulo_lend"; 3 | export * from "./lulo_withdraw"; 4 | -------------------------------------------------------------------------------- /packages/plugin-token/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | tsconfig*.json 3 | .gitignore 4 | .eslintrc 5 | jest.config.js 6 | .rollup.cache/ 7 | .turbo/ 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0004_odd_slayback.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "Document" ADD COLUMN "text" varchar DEFAULT 'text' NOT NULL; -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0011_nebulous_doctor_strange.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ALTER COLUMN "walletAddress" SET DEFAULT ''; -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/.env.example: -------------------------------------------------------------------------------- 1 | LANGCHAIN_CALLBACKS_BACKGROUND=false 2 | OPENAI_API_KEY= 3 | RPC_URL= 4 | SOLANA_PRIVATE_KEY= 5 | -------------------------------------------------------------------------------- /examples/n8n-solana-agent/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | .tmp 4 | tmp 5 | dist 6 | npm-debug.log* 7 | yarn.lock 8 | .vscode/launch.json 9 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/meteora/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./create_meteora_dlmm_pool"; 2 | export * from "./create_meteora_dynamic_amm_pool"; 3 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: ["@tailwindcss/postcss"], 3 | }; 4 | 5 | export default config; 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0003_cloudy_glorian.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "Chat" ADD COLUMN "visibility" varchar DEFAULT 'private' NOT NULL; -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0012_watery_sheva_callister.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ALTER COLUMN "walletAddress" SET DATA TYPE text; -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/meta/_journal.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "7", 3 | "dialect": "postgresql", 4 | "entries": [] 5 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/.env.local.example: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_OPENAI_API_KEY="sk-" 2 | 3 | NEXT_PUBLIC_RPC_URL="https://api.devnet.solana.com" -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/defi/wormhole-nextjs-agent/app/favicon.ico -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/db/migrations/meta/_journal.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "7", 3 | "dialect": "postgresql", 4 | "entries": [] 5 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/ottersec/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./actions"; 2 | export * from "./tools"; 3 | export * from "./constants"; 4 | export * from "./types"; 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | module.exports = nextConfig; 5 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/privy-server-wallet-agent/app/favicon.ico -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | TELEGRAM_BOT_TOKEN= 4 | PRIVY_APP_ID= 5 | PRIVY_APP_SECRET= 6 | DATABASE_URL= 7 | -------------------------------------------------------------------------------- /packages/core/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-langgraph/assets/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/agent-kit-langgraph/assets/architecture.png -------------------------------------------------------------------------------- /packages/adapter-mcp/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/plugin-defi/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/allora/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_all_topics"; 2 | export * from "./get_inference_by_topic_id"; 3 | export * from "./get_price_inference"; 4 | -------------------------------------------------------------------------------- /packages/plugin-misc/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/plugin-nft/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/banner.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Privy SAK React Native 3 | -------------------------------------------------------------------------------- /packages/plugin-blinks/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/pumpfunAmm/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./addLiquidityWithQuote"; 2 | export * from "./addLiquidityWithBase"; 3 | export * from "./removeLiquidity"; 4 | 5 | -------------------------------------------------------------------------------- /packages/plugin-token/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/favicon.ico -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/favicon.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/tailwind.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ['./src/**/*.{js,jsx,ts,tsx}'], 4 | } 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "expo" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/social/tg-bot-starter/basic-tg-bot/src/app/favicon.ico -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/social/tg-bot-starter/group-tg-bot/src/app/favicon.ico -------------------------------------------------------------------------------- /packages/plugin-defi/src/voltr/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./voltr_deposit_strategy"; 2 | export * from "./voltr_withdraw_strategy"; 3 | export * from "./voltr_get_position_values"; 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/sendai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/phantom-agent-starter/public/sendai.jpg -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/server/.env.example: -------------------------------------------------------------------------------- 1 | # Server configuration 2 | PORT=3001 3 | 4 | # MongoDB connection 5 | MONGODB_URI=mongodb://localhost:27017/privyChat 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/theme/index.ts: -------------------------------------------------------------------------------- 1 | export { default as darkTheme } from './darkTheme'; 2 | export { default as ThemeProvider, useTheme } from './ThemeProvider'; -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/plugin-token/src/jupiter/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./fetchPrice"; 2 | export * from "./stakeWithJup"; 3 | export * from "./trade"; 4 | export * from "./getTokenDataByTicker"; 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/favicon-16x16.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/favicon-32x32.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/tailwind.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ['./src/**/*.{js,jsx,ts,tsx}'], 4 | } 5 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/agent-kit-nextjs-langchain/public/images/favicon.ico -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/public/images/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/agent-kit-nextjs-langchain/public/images/og-image.png -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/app/(chat)/twitter-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/privy-server-wallet-agent/app/(chat)/twitter-image.png -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/social/tg-bot-starter/advanced-tg-bot/src/app/favicon.ico -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/apple-touch-icon.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/Podfile.properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo.jsEngine": "hermes", 3 | "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", 4 | "newArchEnabled": "false" 5 | } 6 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/public/images/title-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/agent-kit-nextjs-langchain/public/images/title-card.png -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/app/(chat)/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/privy-server-wallet-agent/app/(chat)/opengraph-image.png -------------------------------------------------------------------------------- /packages/plugin-defi/src/sanctum/constants/index.ts: -------------------------------------------------------------------------------- 1 | export const SANCTUM_STAT_API_URI = "https://extra-api.sanctum.so"; 2 | 3 | export const SANCTUM_TRADE_API_URI = "https://sanctum-s-api.fly.dev"; 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | // tailwindcss: {}, 5 | autoprefixer: {}, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/icons/dexscreener.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/icons/dexscreener.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/logos/sendai-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/logos/sendai-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/para-plugin-example/public/images/favicon.ico -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/public/images/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/para-plugin-example/public/images/og-image.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon.ico -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon.png -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/public/images/demo-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/privy-server-wallet-agent/public/images/demo-thumbnail.png -------------------------------------------------------------------------------- /examples/defi/okx-dex-starter/.env.example: -------------------------------------------------------------------------------- 1 | OKX_API_KEY= 2 | OKX_SECRET_KEY= 3 | OKX_API_PASSPHRASE= 4 | OKX_PROJECT_ID= 5 | OKX_SOLANA_WALLET_ADDRESS= 6 | OKX_SOLANA_PRIVATE_KEY= 7 | OPENAI_API_KEY= 8 | RPC_URL= -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | }; 6 | 7 | export default nextConfig; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/token-logos/bonk-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/token-logos/bonk-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/token-logos/jito-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/token-logos/jito-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/token-logos/jup-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/token-logos/jup-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/token-logos/send-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/token-logos/send-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/public/images/title-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/para-plugin-example/public/images/title-card.png -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/icons/user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/phantom-agent-starter/public/icons/user-icon.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/debug.keystore -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/icons/user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/turnkey-agent-starter/public/icons/user-icon.png -------------------------------------------------------------------------------- /examples/misc/agent-kit-langgraph/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | package-lock.json 4 | 5 | # Environment variables 6 | .env 7 | .env.local 8 | 9 | # Build output 10 | dist/ 11 | build/ -------------------------------------------------------------------------------- /packages/plugin-misc/src/gibwork/types/index.ts: -------------------------------------------------------------------------------- 1 | export interface GibworkCreateTaskReponse { 2 | status: "success" | "error"; 3 | taskId?: string | undefined; 4 | signature?: string | undefined; 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | .env 4 | 5 | # VSCode 6 | .vscode 7 | 8 | .DS_Store 9 | 10 | .husky 11 | .turbo 12 | .turbo/ 13 | .rollup.*/ 14 | .rollup/ 15 | drizzle/ 16 | tsconfig.tsbuildinfo 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/crossmint-sak-v2/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | // tailwindcss: {}, 5 | autoprefixer: {}, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/.eslintrc.js: -------------------------------------------------------------------------------- 1 | const { StrictMode } = require("react"); 2 | 3 | module.exports = { 4 | StrictMode: false, 5 | root: true, 6 | extends: '@react-native', 7 | }; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/noop-file.swift: -------------------------------------------------------------------------------- 1 | // 2 | // @generated 3 | // A blank Swift file must be created for native modules with Swift files to work correctly. 4 | // 5 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/next.config.js: -------------------------------------------------------------------------------- 1 | const withBundleAnalyzer = require('@next/bundle-analyzer')({ 2 | enabled: process.env.ANALYZE === 'true', 3 | }) 4 | module.exports = withBundleAnalyzer({}) -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon-16x16.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/favicon-32x32.png -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0010_nervous_omega_red.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ALTER COLUMN "email" DROP NOT NULL;--> statement-breakpoint 2 | ALTER TABLE "User" ADD COLUMN "walletAddress" json NOT NULL; -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildCommand": "pnpm build", 3 | "devCommand": "pnpm dev", 4 | "installCommand": "pnpm install", 5 | "framework": null, 6 | "outputDirectory": "dist" 7 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-Bold.woff2 -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/apple-touch-icon.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/icons/dexscreener.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/icons/dexscreener.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/logos/sendai-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/logos/sendai-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/PrivySAKReactNative-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-Bold.woff2 -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/public/images/mouth of the seine, monet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/misc/privy-server-wallet-agent/public/images/mouth of the seine, monet.jpg -------------------------------------------------------------------------------- /packages/plugin-misc/src/alldomains/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_all_domains_tlds"; 2 | export * from "./get_owned_all_domains"; 3 | export * from "./get_owned_domains_for_tld"; 4 | export * from "./resolve_domain"; 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/crossmint/constants.ts: -------------------------------------------------------------------------------- 1 | export const CROSSMINT_STAGING_API_URL = "https://staging.crossmint.com/api/2022-06-09"; 2 | export const CROSSMINT_PRODUCTION_API_URL = "https://www.crossmint.com/api/2022-06-09"; 3 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/helius/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_assets_by_owner"; 2 | export * from "./helius_transaction_parsing"; 3 | export * from "./helius_webhooks"; 4 | export * from "./send_transaction_with_priority"; 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/app/api/usershare/db.ts: -------------------------------------------------------------------------------- 1 | import Datastore from "nedb"; 2 | 3 | // Create an in-memory database instance 4 | const db = new Datastore({ inMemoryOnly: true }); 5 | 6 | export default db; 7 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-Regular.woff2 -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/phantom-agent-starter/public/fonts/inter/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/bonk-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/bonk-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/jito-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/jito-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/jup-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/jup-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/send-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-agent-tanstack-starter/public/token-logos/send-logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-Regular.woff2 -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/turnkey-agent-starter/public/fonts/inter/Inter-SemiBold.woff2 -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/*" 3 | - "test" 4 | - "!examples/**/*" 5 | - "!**/para-plugin-example" 6 | # exclude packages that are inside test directories 7 | # - "!**/test/**" 8 | # - "!**/examples/**" 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | @interface AppDelegate : EXAppDelegateWrapper 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { clsx, type ClassValue } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/tools/get_wallet_address.ts: -------------------------------------------------------------------------------- 1 | import { SolanaAgentKit } from "@packages/core/dist"; 2 | 3 | export function getWalletAddress(agent: SolanaAgentKit): string { 4 | return agent.wallet.publicKey.toBase58(); 5 | } 6 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/okx/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./executeSwap"; 2 | export * from "./getChainData"; 3 | export * from "./getLiquidity"; 4 | export * from "./getQuote"; 5 | export * from "./getSwapData"; 6 | export * from "./getTokens"; 7 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/raydium/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./tools/raydium_create_ammV4"; 2 | export * from "./tools/raydium_create_clmm"; 3 | export * from "./tools/raydium_create_cpmm"; 4 | export * from "./tools/raydium_create_launchlab_token"; 5 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/messari/types.ts: -------------------------------------------------------------------------------- 1 | export interface MessariMessage { 2 | content: string; 3 | role: string; 4 | } 5 | 6 | export interface MessariAPIResponse { 7 | data: { 8 | messages: MessariMessage[]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/magiceden/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./bid_on_nft"; 2 | export * from "./get_collection_stats"; 3 | export * from "./get_collection_listings"; 4 | export * from "./list_nft"; 5 | export * from "./get_popular_collections"; 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | 3 | const nextConfig = { 4 | transpilePackages: ["@getpara/react-sdk", "@getpara/web-sdk", "@getpara/*"] 5 | }; 6 | 7 | module.exports = nextConfig; -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/types/custom.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.svg' { 2 | import React from 'react'; 3 | import {SvgProps} from 'react-native-svg'; 4 | const content: React.FC; 5 | export default content; 6 | } 7 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/walletProviders/components/wallet/index.ts: -------------------------------------------------------------------------------- 1 | // Export your wallet-related components here 2 | 3 | export * from './EmbeddedWallet'; 4 | export * from './wallet.styles'; 5 | export * from './wallet.theme'; -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/privy.ts: -------------------------------------------------------------------------------- 1 | import { PrivyClient } from "@privy-io/server-auth"; 2 | 3 | export const privyClient = new PrivyClient( 4 | process.env.PRIVY_APP_ID as string, 5 | process.env.PRIVY_APP_SECRET as string, 6 | ); 7 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/okx/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./execute_swap"; 2 | export * from "./get_chain_data"; 3 | export * from "./get_liquidity"; 4 | export * from "./get_quote"; 5 | export * from "./get_swap_data"; 6 | export * from "./get_tokens"; 7 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/api.ts: -------------------------------------------------------------------------------- 1 | // app/api.ts 2 | import { 3 | createStartAPIHandler, 4 | defaultAPIFileRouteHandler, 5 | } from "@tanstack/react-start/api"; 6 | 7 | export default createStartAPIHandler(defaultAPIFileRouteHandler); 8 | -------------------------------------------------------------------------------- /packages/adapter-mcp/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-blinks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/drift/tools/utils/contants.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Minimum compute price required to carry out complex transactions on the Drift protocol 3 | */ 4 | export const MINIMUM_COMPUTE_PRICE_FOR_COMPLEX_ACTIONS = 5 | 0.000003 * 1000000 * 1000000; 6 | -------------------------------------------------------------------------------- /packages/plugin-defi/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-misc/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-nft/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/plugin-token/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src" 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["node_modules", "dist"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/.example.env: -------------------------------------------------------------------------------- 1 | 2 | RPC_URL=https://api.devnet.solana.com 3 | OPENAI_API_KEY=sk-proj-- 4 | SOLANA_PRIVATE_KEY= 5 | 6 | 7 | 8 | # wormhole 9 | 10 | 11 | ETH_PRIVATE_KEY= 12 | BASE_PRIVATE_KEY= 13 | SUI_MNEMONIC="" 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/.env.example: -------------------------------------------------------------------------------- 1 | LANGCHAIN_CALLBACKS_BACKGROUND=false 2 | OPENAI_API_KEY= 3 | NEXT_PUBLIC_RPC_URL= 4 | SOLANA_PRIVATE_KEY= 5 | PARA_API_KEY= 6 | NEXT_PUBLIC_PARA_API_KEY= 7 | PARA_ENV= 8 | NEXT_PUBLIC_PARA_ENV= 9 | 10 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | 'tailwindcss/nesting': {}, 6 | }, 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/sns/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_all_registered_all_domains"; 2 | export * from "./get_main_all_domains_domain"; 3 | export * from "./get_primary_domain"; 4 | export * from "./register_domain"; 5 | export * from "./resolve_sol_domain"; 6 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/switchboard/constants.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Switchboard public crossbar instance. 3 | * https://docs.switchboard.xyz/docs/switchboard/crossbar-and-task-runner 4 | */ 5 | export const SWITCHBOARD_DEFAULT_CROSSBAR = "https://crossbar.switchboard.xyz"; 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/api.ts: -------------------------------------------------------------------------------- 1 | // app/api.ts 2 | import { 3 | createStartAPIHandler, 4 | defaultAPIFileRouteHandler, 5 | } from "@tanstack/react-start/api"; 6 | 7 | export default createStartAPIHandler(defaultAPIFileRouteHandler); 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Android/IntelliJ 6 | # 7 | build/ 8 | .idea 9 | .gradle 10 | local.properties 11 | *.iml 12 | *.hprof 13 | .cxx/ 14 | 15 | # Bundle artifacts 16 | *.jsbundle 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-mdpi/splashscreen_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-mdpi/splashscreen_logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #FFFFFF 3 | #023c69 4 | #ffffff 5 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/db/index.ts: -------------------------------------------------------------------------------- 1 | import { drizzle } from "drizzle-orm/postgres-js"; 2 | import postgres from "postgres"; 3 | 4 | const client = postgres(process.env.DATABASE_URL as string, { prepare: false }); 5 | export const db = drizzle({ client }); 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xxhdpi/splashscreen_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xxhdpi/splashscreen_logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xxxhdpi/splashscreen_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable-xxxhdpi/splashscreen_logo.png -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/social/discord-bot-starter/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "arrowParens": "always", 5 | "printWidth": 120, 6 | "singleQuote": true, 7 | "trailingComma": "all", 8 | "endOfLine": "auto", 9 | "bracketSpacing": true 10 | } 11 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | serverExternalPackages: ["@solana-agent-kit/plugin-defi"], 6 | }; 7 | 8 | export default nextConfig; 9 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | serverExternalPackages: ["@solana-agent-kit/plugin-defi"], 6 | }; 7 | 8 | export default nextConfig; 9 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | serverExternalPackages: ["@solana-agent-kit/plugin-defi"], 6 | }; 7 | 8 | export default nextConfig; 9 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/coingecko/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_latest_pools"; 2 | export * from "./get_token_info"; 3 | export * from "./get_token_price_data"; 4 | export * from "./get_top_gainers"; 5 | export * from "./get_trending_pools"; 6 | export * from "./get_trending_tokens"; 7 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./balance"; 2 | export * from "./closeEmptyTokenAccounts"; 3 | export * from "./getTPS"; 4 | export * from "./requestFunds"; 5 | export * from "./transfer"; 6 | export * from "./tokenBalances"; 7 | export * from "./walletAddress"; 8 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/debridge/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./check_transaction_status"; 2 | export * from "./get_bridge_quote"; 3 | export * from "./execute_bridge_order"; 4 | export * from "./create_bridge_order"; 5 | export * from "./get_supported_chains"; 6 | export * from "./get_tokens_info"; 7 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/constants.ts: -------------------------------------------------------------------------------- 1 | export const isProductionEnvironment = process.env.NODE_ENV === 'production'; 2 | 3 | export const isTestEnvironment = Boolean( 4 | process.env.PLAYWRIGHT_TEST_BASE_URL || 5 | process.env.PLAYWRIGHT || 6 | process.env.CI_PLAYWRIGHT, 7 | ); 8 | -------------------------------------------------------------------------------- /packages/core/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # solana-agent-kit 2 | 3 | ## 2.0.0-beta.3 4 | 5 | ### Major Changes 6 | 7 | - Fixes rpc url requirment for KeypairWallet 8 | 9 | ## 2.0.1 10 | 11 | ### Major Changes 12 | 13 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 14 | -------------------------------------------------------------------------------- /packages/plugin-nft/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-nft 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 8 | 9 | ### Patch Changes 10 | 11 | - Updated dependencies 12 | - solana-agent-kit@2.0.1 13 | -------------------------------------------------------------------------------- /packages/plugin-defi/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-defi 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 8 | 9 | ### Patch Changes 10 | 11 | - Updated dependencies 12 | - solana-agent-kit@2.0.1 13 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/flash/types/index.ts: -------------------------------------------------------------------------------- 1 | export interface FlashTradeParams { 2 | token: string; 3 | side: "long" | "short"; 4 | collateralUsd: number; 5 | leverage: number; 6 | } 7 | 8 | export interface FlashCloseTradeParams { 9 | token: string; 10 | side: "long" | "short"; 11 | } 12 | -------------------------------------------------------------------------------- /packages/plugin-misc/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-misc 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 8 | 9 | ### Patch Changes 10 | 11 | - Updated dependencies 12 | - solana-agent-kit@2.0.1 13 | -------------------------------------------------------------------------------- /packages/plugin-token/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-token 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 8 | 9 | ### Patch Changes 10 | 11 | - Updated dependencies 12 | - solana-agent-kit@2.0.1 13 | -------------------------------------------------------------------------------- /packages/plugin-blinks/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-blinks 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - We are shifting to a new architecture -- v2, which introduces the plugins architecture 8 | 9 | ### Patch Changes 10 | 11 | - Updated dependencies 12 | - solana-agent-kit@2.0.1 13 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/metaplex/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./deploy_collection"; 2 | export * from "./mint_nft"; 3 | export * from "./deploy_token"; 4 | export * from "./deploy_token2022"; 5 | export * from "./get_asset"; 6 | export * from "./get_assets_by_authority"; 7 | export * from "./get_assets_by_creator"; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/utils/session.ts: -------------------------------------------------------------------------------- 1 | import { useSession } from "@tanstack/react-start/server"; 2 | import type { User } from "db/schema"; 3 | 4 | export function useAppSession() { 5 | return useSession({ 6 | password: "ChangeThisBeforeShippingToProdOrYouWillBeFired", 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/utils/init.ts: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import ParaWebPlugin from "solana-plugin-para-web"; 3 | import {solanaAgent} from "./solana"; 4 | export const solanaAgentWithPara = solanaAgent.use(ParaWebPlugin); 5 | export const para = solanaAgentWithPara.methods.getParaInstance(); 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendaifun/solana-agent-kit/HEAD/examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/middleware.ts: -------------------------------------------------------------------------------- 1 | import NextAuth from 'next-auth'; 2 | 3 | import { authConfig } from '@/app/(auth)/auth.config'; 4 | 5 | export default NextAuth(authConfig).auth; 6 | 7 | export const config = { 8 | matcher: ['/', '/:id', '/api/:path*', '/login', '/register'], 9 | }; 10 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char * argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/Back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/plugin-blinks/README.md: -------------------------------------------------------------------------------- 1 | # @solana-agent-kit/plugin-blinks 2 | 3 | This plugin provides a set of tools and actions for quick, fun interactions on Solana using Solana blinks. 4 | 5 | ## Tools Available 6 | 7 | ### Send 8 | - `sendArcadeGames` - Integrate with a send arcade game. Specifically rock, paper, scissors. 9 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/squads/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./create_multisig"; 2 | export * from "./create_proposal"; 3 | export * from "./approve_proposal"; 4 | export * from "./deposit_to_treasury"; 5 | export * from "./execute_proposal"; 6 | export * from "./reject_proposal"; 7 | export * from "./transfer_from_treasury"; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/utils/session.ts: -------------------------------------------------------------------------------- 1 | import { useSession } from "@tanstack/react-start/server"; 2 | import type { User } from "db/schema"; 3 | 4 | export function useAppSession() { 5 | return useSession({ 6 | password: "ChangeThisBeforeShippingToProdOrYouWillBeFired", 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/walletProviders/index.ts: -------------------------------------------------------------------------------- 1 | // Export all wallet components 2 | export { default as EmbeddedWalletAuth } from './components/wallet/EmbeddedWallet'; 3 | 4 | // Export the authentication hooks 5 | export { useAuth } from './hooks/useAuth'; 6 | export { useWallet } from './hooks/useWallet'; 7 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/sanctum/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./sanctumGetLSTPrice"; 2 | export * from "./sanctumGetLSTTVL"; 3 | export * from "./sanctumGetLSTAPY"; 4 | export * from "./sanctumAddLiquidity"; 5 | export * from "./sanctumRemoveLiquidity"; 6 | export * from "./sanctumGetOwnedLST"; 7 | export * from "./sanctumSwapLST"; 8 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/magiceden/constants.ts: -------------------------------------------------------------------------------- 1 | import redaxios from "redaxios"; 2 | 3 | export const MAGIC_EDEN_API_URL = "https://api-mainnet.magiceden.dev/v2"; 4 | export const magicedenClient = redaxios.create({ 5 | baseURL: MAGIC_EDEN_API_URL, 6 | headers: { 7 | "Content-Type": "application/json", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/server/routes/fileRoutes.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import { upload, uploadFile } from '../controllers/fileController'; 3 | 4 | const router = express.Router(); 5 | 6 | // File upload route 7 | router.post('/upload', upload.single('file'), uploadFile); 8 | 9 | export default router; -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/artifacts/actions.ts: -------------------------------------------------------------------------------- 1 | 'use server'; 2 | 3 | import { getSuggestionsByDocumentId } from '@/lib/db/queries'; 4 | 5 | export async function getSuggestions({ documentId }: { documentId: string }) { 6 | const suggestions = await getSuggestionsByDocumentId({ documentId }); 7 | return suggestions ?? []; 8 | } 9 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/db/migrations/meta/_journal.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "7", 3 | "dialect": "postgresql", 4 | "entries": [ 5 | { 6 | "idx": 0, 7 | "version": "7", 8 | "when": 1744661844527, 9 | "tag": "0000_giant_living_tribunal", 10 | "breakpoints": true 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import "dotenv/config"; 2 | import { defineConfig } from "drizzle-kit"; 3 | 4 | export default defineConfig({ 5 | out: "./drizzle", 6 | schema: "./db/schema.ts", 7 | dialect: "postgresql", 8 | dbCredentials: { 9 | url: process.env.DATABASE_URL!, 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/README.md: -------------------------------------------------------------------------------- 1 | # privy-tg-bot 2 | 3 | To install dependencies: 4 | 5 | ```bash 6 | bun install 7 | ``` 8 | 9 | To run: 10 | 11 | ```bash 12 | bun run index.ts 13 | ``` 14 | 15 | This project was created using `bun init` in bun v1.2.12. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. 16 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/orca/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./orca_close_position"; 2 | export * from "./orca_create_clmm"; 3 | export * from "./orca_create_single_sided_liquidity_pool"; 4 | export * from "./orca_fetch_positions"; 5 | export * from "./orca_open_centered_position_with_liquidity"; 6 | export * from "./orca_open_single_sided_position"; 7 | -------------------------------------------------------------------------------- /packages/plugin-defi/src/sanctum/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./sanctum_get_lst_price"; 2 | export * from "./sanctum_get_lst_apy"; 3 | export * from "./sanctum_get_lst_tvl"; 4 | export * from "./sanctum_add_liquidity"; 5 | export * from "./sanctum_remove_liquidity"; 6 | export * from "./sanctum_get_owned_lst"; 7 | export * from "./sanctum_swap_lst"; 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/client.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | import { hydrateRoot } from 'react-dom/client' 3 | import { StartClient } from '@tanstack/react-start' 4 | import { createRouter } from './router' 5 | 6 | const router = createRouter() 7 | 8 | hydrateRoot(document, ) 9 | -------------------------------------------------------------------------------- /examples/misc/orbofi-personality-engine/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= 4 | JUPITER_REFERRAL_ACCOUNT= 5 | JUPITER_FEE_BPS= 6 | FLASH_PRIVILEGE= referral | nft | none 7 | FLEXLEND_API_KEY= 8 | HELIUS_API_KEY= 9 | ETHEREUM_PRIVATE_KEY= 10 | ALLORA_API_KEY= 11 | ALLORA_API_URL= 12 | ALLORA_NETWORK= testnet | mainnet 13 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | TELEGRAM_BOT_TOKEN= 4 | NEXT_PUBLIC_FIREBASE_API_KEY= 5 | NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN= 6 | NEXT_PUBLIC_FIREBASE_PROJECT_ID= 7 | NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET= 8 | NEXT_PUBLIC_FIREBASE_APP_ID= 9 | NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID= 10 | POSTGRES_LINK= -------------------------------------------------------------------------------- /examples/misc/agent-kit-langgraph/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2022", 4 | "module": "es2022", 5 | "moduleResolution": "node", 6 | "esModuleInterop": true, 7 | "strict": true, 8 | "outDir": "./dist" 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules"] 12 | } -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | TELEGRAM_BOT_TOKEN= 4 | NEXT_PUBLIC_FIREBASE_API_KEY= 5 | NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN= 6 | NEXT_PUBLIC_FIREBASE_PROJECT_ID= 7 | NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET= 8 | NEXT_PUBLIC_FIREBASE_APP_ID= 9 | NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID= 10 | POSTGRES_LINK= -------------------------------------------------------------------------------- /packages/plugin-misc/src/ottersec/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./createVerificationPda"; 2 | export * from "./decodeVerificationPdaData"; 3 | export * from "./getProgramBuildLog"; 4 | export * from "./getProgramVerificationStatus"; 5 | export * from "./getVerificationJobStatus"; 6 | export * from "./getVerifiedPrograms"; 7 | export * from "./verifyProgram"; 8 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./get_tps"; 2 | export * from "./request_faucet_funds"; 3 | export * from "./close_empty_token_accounts"; 4 | export * from "./transfer"; 5 | export * from "./get_balance"; 6 | export * from "./get_balance_other"; 7 | export * from "./get_token_balances"; 8 | export * from "./get_wallet_address"; 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/client.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | import { hydrateRoot } from 'react-dom/client' 3 | import { StartClient } from '@tanstack/react-start' 4 | import { createRouter } from './router' 5 | 6 | const router = createRouter() 7 | 8 | hydrateRoot(document, ) 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/hooks/useReduxHooks.ts: -------------------------------------------------------------------------------- 1 | import {TypedUseSelectorHook, useDispatch, useSelector} from 'react-redux'; 2 | import type {RootState, AppDispatch} from '../state/store'; 3 | 4 | export const useAppDispatch = () => useDispatch(); 5 | export const useAppSelector: TypedUseSelectorHook = useSelector; 6 | -------------------------------------------------------------------------------- /packages/plugin-token/src/jupiter/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./fetch_price"; 2 | export * from "./stake_with_jup"; 3 | export * from "./trade"; 4 | export * from "./create_limit_order"; 5 | export * from "./cancel_limit_orders"; 6 | export * from "./get_open_limit_orders"; 7 | export * from "./get_limit_order_history"; 8 | export * from "./get_token_by_ticker"; 9 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | async rewrites() { 4 | return [ 5 | { 6 | source: '/api/jupag/:path*', 7 | destination: 'https://tokens.jup.ag/:path*', 8 | }, 9 | ]; 10 | }, 11 | }; 12 | 13 | module.exports = nextConfig; 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/ArrowDown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "baseUrl": ".", 7 | "paths": { 8 | "@/*": ["./src/*"] 9 | } 10 | }, 11 | "include": ["src/**/*", "**/*.ts", "**/*.tsx"], 12 | "exclude": ["node_modules", "dist", ".next", "out"] 13 | } 14 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/ottersec/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./create_verification_pda"; 2 | export * from "./decode_verification_pda_data"; 3 | export * from "./get_program_build_log"; 4 | export * from "./get_program_verification_status"; 5 | export * from "./get_verification_job_status"; 6 | export * from "./get_verified_programs"; 7 | export * from "./verify_program"; 8 | -------------------------------------------------------------------------------- /test/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "baseUrl": ".", 6 | "paths": { 7 | "solana-agent-kit": ["../packages/core/src"], 8 | "@solana-agent-kit/*": ["../packages/*/src"] 9 | } 10 | }, 11 | "include": ["./**/*"], 12 | "exclude": ["node_modules", "dist"] 13 | } 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/Vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "tasks": { 4 | "build": { 5 | "dependsOn": ["^build"], 6 | "inputs": ["packages/**"], 7 | "outputs": ["dist/**"] 8 | }, 9 | "test": { 10 | "dependsOn": ["build"] 11 | }, 12 | "clean": { 13 | "cache": false 14 | }, 15 | "lint": {} 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/cnft-badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | cNFT 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/nft-badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | NFT 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "filename": "App-Icon-1024x1024@1x.png", 5 | "idiom": "universal", 6 | "platform": "ios", 7 | "size": "1024x1024" 8 | } 9 | ], 10 | "info": { 11 | "version": 1, 12 | "author": "expo" 13 | } 14 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/components/theme-provider.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { ThemeProvider as NextThemesProvider } from 'next-themes'; 4 | import type { ThemeProviderProps } from 'next-themes/dist/types'; 5 | 6 | export function ThemeProvider({ children, ...props }: ThemeProviderProps) { 7 | return {children}; 8 | } 9 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/editor/react-renderer.tsx: -------------------------------------------------------------------------------- 1 | import { createRoot } from 'react-dom/client'; 2 | 3 | export class ReactRenderer { 4 | static render(component: React.ReactElement, dom: HTMLElement) { 5 | const root = createRoot(dom); 6 | root.render(component); 7 | 8 | return { 9 | destroy: () => root.unmount(), 10 | }; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/eth-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/eth-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from '@/lib/utils'; 2 | 3 | function Skeleton({ 4 | className, 5 | ...props 6 | }: React.HTMLAttributes) { 7 | return ( 8 |
12 | ); 13 | } 14 | 15 | export { Skeleton }; 16 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | yarn.lock 4 | 5 | .env 6 | .DS_Store 7 | .cache 8 | .vercel 9 | .output 10 | .vinxi 11 | 12 | /build/ 13 | /api/ 14 | /server/build 15 | /public/build 16 | .vinxi 17 | # Sentry Config File 18 | .env.sentry-build-plugin 19 | /test-results/ 20 | /playwright-report/ 21 | /blob-report/ 22 | /playwright/.cache/ 23 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from "~/lib/utils" 2 | 3 | function Skeleton({ className, ...props }: React.ComponentProps<"div">) { 4 | return ( 5 |
10 | ) 11 | } 12 | 13 | export { Skeleton } 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "strict": true, 5 | "jsx": "react-native", 6 | "types": ["react-native"], 7 | "allowJs": true, 8 | "esModuleInterop": true, 9 | "skipLibCheck": true, 10 | "baseUrl": ".", 11 | "paths": { 12 | "@/*": ["src/*"] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/icons/twitter-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/logos/x-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./src/app/**/*.{js,ts,jsx,tsx}", 5 | "./src/components/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [ 11 | require('@tailwindcss/typography'), 12 | require('tailwindcss-animate'), 13 | ], 14 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from "~/lib/utils" 2 | 3 | function Skeleton({ className, ...props }: React.ComponentProps<"div">) { 4 | return ( 5 |
10 | ) 11 | } 12 | 13 | export { Skeleton } 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/logos/x-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./src/app/**/*.{js,ts,jsx,tsx}", 5 | "./src/components/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [ 11 | require('@tailwindcss/typography'), 12 | require('tailwindcss-animate'), 13 | ], 14 | } -------------------------------------------------------------------------------- /examples/n8n-solana-agent/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = tab 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [package.json] 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | 18 | [*.yml] 19 | indent_style = space 20 | indent_size = 2 21 | -------------------------------------------------------------------------------- /packages/core/src/utils/zod.ts: -------------------------------------------------------------------------------- 1 | import { ZodObject, ZodRawShape, ZodType } from "zod"; 2 | 3 | export function transformToZodObject( 4 | schema: ZodType, 5 | ): ZodObject { 6 | if (schema instanceof ZodObject) { 7 | return schema as ZodObject; 8 | } 9 | throw new Error( 10 | `The provided schema is not a ZodObject: ${JSON.stringify(schema)}`, 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/utils/solana.ts: -------------------------------------------------------------------------------- 1 | import { SolanaAgentKit, type BaseWallet } from "solana-agent-kit"; 2 | 3 | 4 | // Create the Solana Agent 5 | export let solanaAgent = new SolanaAgentKit( 6 | {} as BaseWallet, // Temporary wallet, will be replaced 7 | process.env.NEXT_PUBLIC_RPC_URL as string, 8 | { 9 | OPENAI_API_KEY: process.env.OPENAI_API_KEY as string || "", 10 | } 11 | ); -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/public/window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/icons/twitter-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /examples/n8n-solana-agent/.eslintrc.prepublish.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('@types/eslint').ESLint.ConfigData} 3 | */ 4 | module.exports = { 5 | extends: "./.eslintrc.js", 6 | 7 | overrides: [ 8 | { 9 | files: ['package.json'], 10 | plugins: ['eslint-plugin-n8n-nodes-base'], 11 | rules: { 12 | 'n8n-nodes-base/community-package-json-name-still-default': 'error', 13 | }, 14 | }, 15 | ], 16 | }; 17 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/public/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/PrivySAKReactNative.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.applesignin 6 | 7 | Default 8 | 9 | 10 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | experimental: { 5 | ppr: true, 6 | }, 7 | serverExternalPackages: ["@solana-agent-kit/plugin-defi"], 8 | images: { 9 | remotePatterns: [ 10 | { 11 | hostname: "avatar.vercel.sh", 12 | }, 13 | ], 14 | }, 15 | }; 16 | 17 | export default nextConfig; 18 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/public/window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/public/window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/public/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/public/window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/public/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/public/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/bottom-rect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/explore-icon-selected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/explore-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/bookmark-idle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/ssr.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | import { 3 | createStartHandler, 4 | defaultStreamHandler, 5 | } from '@tanstack/react-start/server' 6 | import { getRouterManifest } from '@tanstack/react-start/router-manifest' 7 | 8 | import { createRouter } from './router' 9 | 10 | export default createStartHandler({ 11 | createRouter, 12 | getRouterManifest, 13 | })(defaultStreamHandler) 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/index.js: -------------------------------------------------------------------------------- 1 | // Import all polyfills first 2 | import './src/polyfills'; 3 | 4 | // Initialize react-native-screens 5 | import { enableScreens } from 'react-native-screens'; 6 | enableScreens(); 7 | 8 | // Initialize react-native-gesture-handler 9 | import 'react-native-gesture-handler'; 10 | 11 | import {registerRootComponent} from 'expo'; 12 | import App from './App'; 13 | 14 | registerRootComponent(App); 15 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from "dotenv"; 2 | import { defineConfig } from "drizzle-kit"; 3 | 4 | config({ 5 | path: ".env", 6 | }); 7 | 8 | export default defineConfig({ 9 | schema: "./db/schema.ts", 10 | out: "./db/migrations", 11 | dialect: "postgresql", 12 | dbCredentials: { 13 | // biome-ignore lint: Forbidden non-null assertion. 14 | url: process.env.POSTGRES_URL!, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/Close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/bookmark-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/functions/markdown.ts: -------------------------------------------------------------------------------- 1 | import { createServerFn } from "@tanstack/react-start"; 2 | import { readFile } from "fs/promises"; 3 | import { join } from "path"; 4 | 5 | export const readHomeMarkdownFile = createServerFn({ method: "GET" }).handler( 6 | async () => { 7 | const filePath = join(process.cwd(), "src/markdown/home.md"); 8 | const text = await readFile(filePath, "utf-8"); 9 | return text; 10 | }, 11 | ); 12 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/functions/markdown.ts: -------------------------------------------------------------------------------- 1 | import { createServerFn } from "@tanstack/react-start"; 2 | 3 | export const readHomeMarkdownFile = createServerFn({ method: "GET" }).handler( 4 | async () => { 5 | const url = 6 | "https://raw.githubusercontent.com/michaelessiet/privy-sak-tanstack/refs/heads/main/src/markdown/home.md"; 7 | const text = await (await fetch(url)).text(); 8 | return text; 9 | }, 10 | ); 11 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/ssr.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | import { 3 | createStartHandler, 4 | defaultStreamHandler, 5 | } from '@tanstack/react-start/server' 6 | import { getRouterManifest } from '@tanstack/react-start/router-manifest' 7 | 8 | import { createRouter } from './router' 9 | 10 | export default createStartHandler({ 11 | createRouter, 12 | getRouterManifest, 13 | })(defaultStreamHandler) 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['babel-preset-expo'], 3 | plugins: [ 4 | 'react-native-reanimated/plugin', 5 | [ 6 | 'module:react-native-dotenv', 7 | { 8 | moduleName: '@env', 9 | path: '.env.local', 10 | blacklist: null, 11 | whitelist: null, 12 | safe: false, 13 | allowUndefined: true, 14 | }, 15 | ] 16 | ], 17 | }; 18 | -------------------------------------------------------------------------------- /examples/mcp/agent-kit-mcp-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "module": "Node16", 5 | "moduleResolution": "Node16", 6 | "outDir": "./build", 7 | "rootDir": "./src", 8 | "strict": true, 9 | "esModuleInterop": true, 10 | "skipLibCheck": true, 11 | "forceConsistentCasingInFileNames": true 12 | }, 13 | "include": ["src/**/*"], 14 | "exclude": ["node_modules"] 15 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from "dotenv"; 2 | import { defineConfig } from "drizzle-kit"; 3 | 4 | config({ 5 | path: ".env", 6 | }); 7 | 8 | export default defineConfig({ 9 | schema: "./db/schema.ts", 10 | out: "./db/migrations", 11 | dialect: "postgresql", 12 | dbCredentials: { 13 | // biome-ignore lint: Forbidden non-null assertion. 14 | url: process.env.POSTGRES_URL!, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Exclude problematic versions of cocoapods and activesupport that causes build failures. 7 | gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' 8 | gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' 9 | gem 'xcodeproj', '< 1.26.0' 10 | gem 'concurrent-ruby', '< 1.3.4' 11 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/error-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from 'dotenv'; 2 | import { defineConfig } from 'drizzle-kit'; 3 | 4 | config({ 5 | path: '.env.local', 6 | }); 7 | 8 | export default defineConfig({ 9 | schema: './lib/db/schema.ts', 10 | out: './lib/db/migrations', 11 | dialect: 'postgresql', 12 | dbCredentials: { 13 | // biome-ignore lint: Forbidden non-null assertion. 14 | url: process.env.POSTGRES_URL!, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/.env.local.example: -------------------------------------------------------------------------------- 1 | # .env 2 | CLUSTER=mainnet-beta 3 | PRIVY_APP_ID=your_privy_app_id 4 | PRIVY_CLIENT_ID=your_privy_client_id 5 | 6 | HELIUS_API_KEY=your_helius_api_key 7 | HELIUS_RPC_CLUSTER=mainnet 8 | HELIUS_STAKED_URL=https://staked.helius-rpc.com?api-key=your_helius_staked_api_key 9 | HELIUS_STAKED_API_KEY=your_helius_staked_api_key 10 | 11 | SERVER_URL=http://localhost:3001 12 | 13 | OPENAI_API_KEY=your_openai_api_key 14 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/share-idle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/server/routes/userRoutes.ts: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import { 3 | createOrUpdateUser, 4 | getUserByWalletAddress, 5 | getCurrentUser 6 | } from '../controllers/userController'; 7 | 8 | const router = express.Router(); 9 | 10 | // User routes 11 | router.post('/user', createOrUpdateUser); 12 | router.get('/user/:walletAddress', getUserByWalletAddress); 13 | router.get('/me', getCurrentUser); 14 | 15 | export default router; -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/walletProviders/types/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Re-exports all types from the embeddedWalletProviders module 3 | * This allows for clean imports like: import { StandardWallet } from '../types' 4 | */ 5 | 6 | // Wallet types 7 | export * from './wallet'; 8 | 9 | // Transaction types 10 | export * from './transaction'; 11 | 12 | // Auth types 13 | export * from './auth'; 14 | 15 | // Provider-specific types 16 | export * from './providers'; -------------------------------------------------------------------------------- /packages/plugin-defi/src/manifest/types/index.ts: -------------------------------------------------------------------------------- 1 | export interface OrderParams { 2 | quantity: number; 3 | side: string; 4 | price: number; 5 | } 6 | 7 | export interface BatchOrderPattern { 8 | side: string; 9 | totalQuantity?: number; 10 | priceRange?: { 11 | min?: number; 12 | max?: number; 13 | }; 14 | spacing?: { 15 | type: "percentage" | "fixed"; 16 | value: number; 17 | }; 18 | numberOfOrders?: number; 19 | individualQuantity?: number; 20 | } 21 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/public/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/public/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/routes/_authed/chats.route.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet, createFileRoute } from "@tanstack/react-router"; 2 | import { fetchChats } from "~/functions/chats.js"; 3 | 4 | export const Route = createFileRoute("/_authed/chats")({ 5 | loader: () => 6 | fetchChats({ 7 | data: { limit: 20, endingBefore: null, startingAfter: null }, 8 | }), 9 | component: PostsComponent, 10 | }); 11 | 12 | function PostsComponent() { 13 | return ; 14 | } 15 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Supporting/Expo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EXUpdatesCheckOnLaunch 6 | ALWAYS 7 | EXUpdatesEnabled 8 | 9 | EXUpdatesLaunchWaitMs 10 | 0 11 | 12 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --background: #ffffff; 7 | --foreground: #171717; 8 | } 9 | 10 | @media (prefers-color-scheme: dark) { 11 | :root { 12 | --background: #0a0a0a; 13 | --foreground: #ededed; 14 | } 15 | } 16 | 17 | body { 18 | color: var(--foreground); 19 | background: var(--background); 20 | font-family: Arial, Helvetica, sans-serif; 21 | } 22 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --background: #ffffff; 7 | --foreground: #171717; 8 | } 9 | 10 | @media (prefers-color-scheme: dark) { 11 | :root { 12 | --background: #0a0a0a; 13 | --foreground: #ededed; 14 | } 15 | } 16 | 17 | body { 18 | color: var(--foreground); 19 | background: var(--background); 20 | font-family: Arial, Helvetica, sans-serif; 21 | } 22 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --background: #ffffff; 7 | --foreground: #171717; 8 | } 9 | 10 | @media (prefers-color-scheme: dark) { 11 | :root { 12 | --background: #0a0a0a; 13 | --foreground: #ededed; 14 | } 15 | } 16 | 17 | body { 18 | color: var(--foreground); 19 | background: var(--background); 20 | font-family: Arial, Helvetica, sans-serif; 21 | } 22 | -------------------------------------------------------------------------------- /docs/@solana-agent-kit/plugin-blinks/README.md: -------------------------------------------------------------------------------- 1 | [**Documentation v2**](../../README.md) 2 | 3 | *** 4 | 5 | [Documentation](../../README.md) / @solana-agent-kit/plugin-blinks 6 | 7 | # @solana-agent-kit/plugin-blinks 8 | 9 | This plugin provides a set of tools and actions for quick, fun interactions on Solana using Solana blinks. 10 | 11 | ## Tools Available 12 | 13 | ### Send 14 | - `sendArcadeGames` - Integrate with arcade games 15 | 16 | ## Variables 17 | 18 | - [default](variables/default.md) 19 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | color: #f8f8f8; 7 | background: #131318; 8 | } 9 | 10 | body input, 11 | body textarea { 12 | color: black; 13 | } 14 | 15 | a { 16 | color: #2d7bd4; 17 | } 18 | 19 | a:hover { 20 | border-bottom: 1px solid; 21 | } 22 | 23 | p { 24 | margin: 8px 0; 25 | } 26 | 27 | code { 28 | color: #ffa500; 29 | } 30 | 31 | li { 32 | padding: 4px; 33 | } 34 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { dirname } from "path"; 2 | import { fileURLToPath } from "url"; 3 | import { FlatCompat } from "@eslint/eslintrc"; 4 | 5 | const __filename = fileURLToPath(import.meta.url); 6 | const __dirname = dirname(__filename); 7 | 8 | const compat = new FlatCompat({ 9 | baseDirectory: __dirname, 10 | }); 11 | 12 | const eslintConfig = [ 13 | ...compat.extends("next/core-web-vitals", "next/typescript"), 14 | ]; 15 | 16 | export default eslintConfig; 17 | -------------------------------------------------------------------------------- /examples/mcp/agent-kit-mcp-server/claude_desktop_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "agent-kit": { 4 | "command": "node", 5 | "env" : { 6 | "OPENAI_API_KEY": "optional_openai_api_key_here", 7 | "RPC_URL": "your_rpc_url_here", 8 | "SOLANA_PRIVATE_KEY": "your_private_key_here" 9 | }, 10 | "args": [ 11 | "/absolute/path/to/build/index.js" 12 | ] 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/public/wormhole-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/routes/_authed/chats.route.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet, createFileRoute } from "@tanstack/react-router"; 2 | import { fetchChats } from "~/functions/chats.js"; 3 | 4 | export const Route = createFileRoute("/_authed/chats")({ 5 | loader: () => 6 | fetchChats({ 7 | data: { limit: 20, endingBefore: null, startingAfter: null }, 8 | }), 9 | component: PostsComponent, 10 | }); 11 | 12 | function PostsComponent() { 13 | return ; 14 | } 15 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/addBtn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | .xcode.env.local 25 | 26 | # Bundle artifacts 27 | *.jsbundle 28 | 29 | # CocoaPods 30 | /Pods/ 31 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/types/env.d.ts: -------------------------------------------------------------------------------- 1 | // File: src/types/env.d.ts 2 | 3 | declare module '@env' { 4 | export const PRIVY_APP_ID: string; 5 | export const PRIVY_CLIENT_ID: string; 6 | export const HELIUS_API_KEY: string; 7 | export const SERVER_URL: string; 8 | export const CLUSTER: string; 9 | export const HELIUS_RPC_CLUSTER: string; 10 | export const HELIUS_STAKED_URL: string; 11 | export const HELIUS_STAKED_API_KEY: string; 12 | export const OPENAI_API_KEY: string; 13 | } 14 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | colors: { 12 | background: "var(--background)", 13 | foreground: "var(--foreground)", 14 | }, 15 | }, 16 | }, 17 | plugins: [], 18 | } satisfies Config; 19 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | colors: { 12 | background: "var(--background)", 13 | foreground: "var(--foreground)", 14 | }, 15 | }, 16 | }, 17 | plugins: [], 18 | } satisfies Config; 19 | -------------------------------------------------------------------------------- /packages/plugin-token/src/jupiter/tools/get_open_limit_orders.ts: -------------------------------------------------------------------------------- 1 | import type { SolanaAgentKit } from "solana-agent-kit"; 2 | import { getOpenOrdersApi } from "./common/jupiterLimitApi"; 3 | 4 | export async function getOpenLimitOrders(agent: SolanaAgentKit) { 5 | try { 6 | const orders = await getOpenOrdersApi(agent.wallet.publicKey.toString()); 7 | return { orders, success: true }; 8 | } catch (error) { 9 | console.error(error); 10 | throw new Error(`Error fetching open orders: ${error}`); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | colors: { 12 | background: "var(--background)", 13 | foreground: "var(--foreground)", 14 | }, 15 | }, 16 | }, 17 | plugins: [], 18 | } satisfies Config; 19 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/solanafm/types.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | AccountParserInterface, 3 | EventParserInterface, 4 | InstructionParserInterface, 5 | ParserOutput, 6 | } from "@solanafm/explorer-kit"; 7 | 8 | export interface InstructionParserResponse { 9 | name: string; 10 | layout: InstructionParserInterface["instructionsLayout"]; 11 | data: ParserOutput; 12 | } 13 | 14 | export interface AccountParserResponse { 15 | name: string; 16 | layout: AccountParserInterface["accountLayouts"]; 17 | data: ParserOutput; 18 | } 19 | -------------------------------------------------------------------------------- /packages/plugin-token/src/jupiter/tools/get_limit_order_history.ts: -------------------------------------------------------------------------------- 1 | import type { SolanaAgentKit } from "solana-agent-kit"; 2 | import { getOrderHistoryApi } from "./common/jupiterLimitApi"; 3 | 4 | export async function getLimitOrderHistory(agent: SolanaAgentKit) { 5 | try { 6 | const history = await getOrderHistoryApi(agent.wallet.publicKey.toString()); 7 | return { history, success: true }; 8 | } catch (error) { 9 | console.error(error); 10 | throw new Error(`Error fetching order history: ${error}`); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/routes/_authed/chats.index.tsx: -------------------------------------------------------------------------------- 1 | import { createFileRoute } from "@tanstack/react-router"; 2 | import { Chat } from "~/components/Chat"; 3 | import { generateUUID } from "~/lib/utils"; 4 | 5 | export const Route = createFileRoute("/_authed/chats/")({ 6 | loader: () => generateUUID(), 7 | component: PostsIndexComponent, 8 | }); 9 | 10 | function PostsIndexComponent() { 11 | const id = Route.useLoaderData(); 12 | 13 | return ; 14 | } 15 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/ai/models.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_CHAT_MODEL: string = 'chat-model'; 2 | 3 | interface ChatModel { 4 | id: string; 5 | name: string; 6 | description: string; 7 | } 8 | 9 | export const chatModels: Array = [ 10 | { 11 | id: 'chat-model', 12 | name: 'Chat model', 13 | description: 'Primary model for all-purpose chat', 14 | }, 15 | { 16 | id: 'chat-model-reasoning', 17 | name: 'Reasoning model', 18 | description: 'Uses advanced reasoning', 19 | }, 20 | ]; 21 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/routes/_authed/chats.index.tsx: -------------------------------------------------------------------------------- 1 | import { createFileRoute } from "@tanstack/react-router"; 2 | import { Chat } from "~/components/Chat"; 3 | import { generateUUID } from "~/lib/utils"; 4 | 5 | export const Route = createFileRoute("/_authed/chats/")({ 6 | loader: () => generateUUID(), 7 | component: PostsIndexComponent, 8 | }); 9 | 10 | function PostsIndexComponent() { 11 | const id = Route.useLoaderData(); 12 | 13 | return ; 14 | } 15 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "app/globals.css", 9 | "baseColor": "zinc", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils", 16 | "ui": "@/components/ui", 17 | "lib": "@/lib", 18 | "hooks": "@/hooks" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/PrivySAKReactNative/Images.xcassets/SplashScreenBackground.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors": [ 3 | { 4 | "color": { 5 | "components": { 6 | "alpha": "1.000", 7 | "blue": "1.00000000000000", 8 | "green": "1.00000000000000", 9 | "red": "1.00000000000000" 10 | }, 11 | "color-space": "srgb" 12 | }, 13 | "idiom": "universal" 14 | } 15 | ], 16 | "info": { 17 | "version": 1, 18 | "author": "expo" 19 | } 20 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/profile-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/profile-icon-selected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/@solana-agent-kit/adapter-mcp/type-aliases/MCPSchemaShape.md: -------------------------------------------------------------------------------- 1 | [**Documentation v2**](../../../README.md) 2 | 3 | *** 4 | 5 | [Documentation](../../../README.md) / [@solana-agent-kit/adapter-mcp](../README.md) / MCPSchemaShape 6 | 7 | # Type Alias: MCPSchemaShape 8 | 9 | > **MCPSchemaShape** = `object` 10 | 11 | Defined in: [index.ts:7](https://github.com/scriptscrypt/solana-agent-kit/blob/8d48a57968ef71c6851a44a8efa685e80e815610/packages/adapter-mcp/src/index.ts#L7) 12 | 13 | ## Index Signature 14 | 15 | \[`key`: `string`\]: `ZodType`\<`any`, `ZodTypeDef`, `any`\> 16 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "", 8 | "css": "src/styles/app.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "~/components", 15 | "utils": "~/lib/utils", 16 | "ui": "~/components/ui", 17 | "lib": "~/lib", 18 | "hooks": "~/hooks" 19 | }, 20 | "iconLibrary": "lucide" 21 | } 22 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/actions/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./fetchOldestTokens"; 2 | export * from "./fetchRecentTokens"; 3 | export * from "./fetchTokenByCreator"; 4 | export * from "./fetchTokenByInitializer"; 5 | export * from "./fetchTokenByMint"; 6 | export * from "./fetchTokenBySignature"; 7 | export * from "./fetchTokensByCreators"; 8 | export * from "./fetchTokensByDuration"; 9 | export * from "./fetchTokensByInitializers"; 10 | export * from "./fetchTokensByMarketCap"; 11 | export * from "./fetchTokensByMetadata"; 12 | export * from "./fetchTokensByMints"; 13 | -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/components/WalletDisplay.tsx: -------------------------------------------------------------------------------- 1 | interface WalletDisplayProps { 2 | walletAddress?: string; 3 | } 4 | 5 | export const WalletDisplay = ({ walletAddress }: WalletDisplayProps) => ( 6 |
7 |

You are logged in!

8 | {walletAddress ? ( 9 |

10 | Your first wallet address is: {walletAddress} 11 |

12 | ) : ( 13 |

No wallet found.

14 | )} 15 |
16 | ); -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/ottersec/constants/index.ts: -------------------------------------------------------------------------------- 1 | export const OTTER_SEC_PROGRAM_ID: string = 2 | "verifycLy8mB96wd9wqq3WDXQwM4oU6r42Th37Db9fC"; 3 | 4 | export const OSEC_ENDPOINT_URI: string = "https://verify.osec.io"; 5 | 6 | export const OSEC_ROUTER: Record = { 7 | VERIFY_PROGRAM: "/verify", 8 | GET_PROGRAM_BUILD_LOG: "/logs/", 9 | GET_PROGRAM_VERIFICATION_STATUS: "/status/", 10 | GET_VERIFICATION_JOB_STATUS: "/job/", 11 | GET_VERIFIED_PROGRAM: "/verified-programs/", 12 | }; 13 | 14 | export const PDA_INITIALIZE_SEED: string = "otter_verify"; 15 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | './pages/**/*.{js,ts,jsx,tsx,mdx}', 5 | './components/**/*.{js,ts,jsx,tsx,mdx}', 6 | './app/**/*.{js,ts,jsx,tsx,mdx}', 7 | ], 8 | theme: { 9 | extend: { 10 | colors: { 11 | 'brand-black': '#000000', 12 | 'brand-white': '#FFFFFF', 13 | 'brand-plum': '#C1BBF6', 14 | 'brand-yellow': '#DDE95A', 15 | 'brand-coral': '#FD8058', 16 | }, 17 | }, 18 | }, 19 | plugins: [], 20 | }; -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "app/globals.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils", 16 | "ui": "@/components/ui", 17 | "lib": "@/lib", 18 | "hooks": "@/hooks" 19 | }, 20 | "iconLibrary": "lucide" 21 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "", 8 | "css": "src/styles/app.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "~/components", 15 | "utils": "~/lib/utils", 16 | "ui": "~/components/ui", 17 | "lib": "~/lib", 18 | "hooks": "~/hooks" 19 | }, 20 | "iconLibrary": "lucide" 21 | } 22 | -------------------------------------------------------------------------------- /examples/embedded-wallets/phantom-agent-starter/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | .env 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "commonjs", 5 | "outDir": "./dist", 6 | "rootDir": "./", 7 | "strict": true, 8 | "esModuleInterop": true, 9 | "skipLibCheck": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "moduleResolution": "node", 12 | "resolveJsonModule": true, 13 | "baseUrl": ".", 14 | "paths": { 15 | "*": ["node_modules/*"] 16 | } 17 | }, 18 | "include": ["./**/*.ts"], 19 | "exclude": ["node_modules", "dist"] 20 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/turnkey-agent-starter/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | .env 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies (bun install) 2 | node_modules 3 | 4 | # output 5 | out 6 | dist 7 | *.tgz 8 | 9 | # code coverage 10 | coverage 11 | *.lcov 12 | 13 | # logs 14 | logs 15 | _.log 16 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 17 | 18 | # dotenv environment variable files 19 | .env 20 | .env.development.local 21 | .env.test.local 22 | .env.production.local 23 | .env.local 24 | 25 | # caches 26 | .eslintcache 27 | .cache 28 | *.tsbuildinfo 29 | 30 | # IntelliJ based IDEs 31 | .idea 32 | 33 | # Finder (MacOS) folder config 34 | .DS_Store 35 | -------------------------------------------------------------------------------- /packages/plugin-token/src/solana/tools/get_tps.ts: -------------------------------------------------------------------------------- 1 | import { SolanaAgentKit } from "solana-agent-kit"; 2 | 3 | export async function getTPS(agent: SolanaAgentKit): Promise { 4 | const perfSamples = await agent.connection.getRecentPerformanceSamples(); 5 | 6 | if ( 7 | !perfSamples.length || 8 | !perfSamples[0]?.numTransactions || 9 | !perfSamples[0]?.samplePeriodSecs 10 | ) { 11 | throw new Error("No performance samples available"); 12 | } 13 | 14 | const tps = perfSamples[0].numTransactions / perfSamples[0].samplePeriodSecs; 15 | 16 | return tps; 17 | } 18 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/helius/types.ts: -------------------------------------------------------------------------------- 1 | // NOTE: see https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api/get-assets-by-owner 2 | 3 | export interface SortOptions { 4 | sortBy?: "created" | "recent_action" | "updated" | "none"; 5 | sortDirection?: "asc" | "desc"; 6 | } 7 | 8 | export interface DisplayOptions { 9 | showUnverifiedCollections?: boolean; 10 | showCollectionMetadata?: boolean; 11 | showGrandTotal?: boolean; 12 | showFungible?: boolean; 13 | showNativeBalance?: boolean; 14 | showInscription?: boolean; 15 | showZeroBalance?: boolean; 16 | } 17 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./pages/**/*.{js,ts,jsx,tsx,mdx}", 5 | "./components/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./app/**/*.{js,ts,jsx,tsx,mdx}", 7 | ], 8 | theme: { 9 | extend: { 10 | backgroundImage: { 11 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 12 | "gradient-conic": 13 | "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 14 | }, 15 | }, 16 | }, 17 | plugins: [require("@tailwindcss/typography")], 18 | }; 19 | -------------------------------------------------------------------------------- /examples/defi/okx-dex-starter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "okx-dex-starter", 3 | "version": "1.0.0", 4 | "description": "Example of using the OKX DEX plugin with Solana Agent Kit", 5 | "main": "index.ts", 6 | "scripts": { 7 | "start": "NODE_NO_WARNINGS=1 tsx index.ts" 8 | }, 9 | "dependencies": { 10 | "@ai-sdk/openai": "1.1.3", 11 | "@solana-agent-kit/plugin-defi": "workspace:*", 12 | "ai": "4.1.5", 13 | "dotenv": "^16.4.5", 14 | "solana-agent-kit": "workspace:*" 15 | }, 16 | "devDependencies": { 17 | "tsx": "^4.7.1", 18 | "typescript": "^5.3.3" 19 | } 20 | } -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/tools/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./fetch_oldest_tokens"; 2 | export * from "./fetch_recent_tokens"; 3 | export * from "./fetch_token_by_creator"; 4 | export * from "./fetch_token_by_initializer"; 5 | export * from "./fetch_token_by_mint"; 6 | export * from "./fetch_token_by_signature"; 7 | export * from "./fetch_tokens_by_creators"; 8 | export * from "./fetch_tokens_by_duration"; 9 | export * from "./fetch_tokens_by_initializers"; 10 | export * from "./fetch_tokens_by_market_cap"; 11 | export * from "./fetch_tokens_by_metadata"; 12 | export * from "./fetch_tokens_by_mints"; 13 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "buildCommand": "pnpm vercel-build", 4 | "installCommand": "npm install -g pnpm@9.15.3 && pnpm install", 5 | "builds": [ 6 | { 7 | "src": "./.output/server/index.mjs", 8 | "use": "@vercel/node", 9 | "config": { 10 | "includeFiles": [ 11 | ".output/server/**" 12 | ] 13 | } 14 | } 15 | ], 16 | "rewrites": [ 17 | { 18 | "source": "/(.*)", 19 | "destination": "/.output/server/index.mjs" 20 | } 21 | ], 22 | "devCommand": "pnpm dev" 23 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svg/CloseIcon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Svg, { Path } from 'react-native-svg'; 3 | 4 | type Props = { 5 | size?: number; 6 | color?: string; 7 | }; 8 | 9 | const CloseIcon = ({ size = 24, color = '#666' }: Props) => ( 10 | 11 | 15 | 16 | ); 17 | 18 | export default CloseIcon; -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/components/sign-out-form.tsx: -------------------------------------------------------------------------------- 1 | import Form from 'next/form'; 2 | 3 | import { signOut } from '@/app/(auth)/auth'; 4 | 5 | export const SignOutForm = () => { 6 | return ( 7 |
{ 10 | 'use server'; 11 | 12 | await signOut({ 13 | redirectTo: '/', 14 | }); 15 | }} 16 | > 17 | 23 |
24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/empty-box.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | **Documentation v2** 2 | 3 | *** 4 | 5 | # Documentation v2 6 | 7 | ## Packages 8 | 9 | - [@solana-agent-kit/adapter-mcp](@solana-agent-kit/adapter-mcp/README.md) 10 | - [@solana-agent-kit/plugin-blinks](@solana-agent-kit/plugin-blinks/README.md) 11 | - [@solana-agent-kit/plugin-defi](@solana-agent-kit/plugin-defi/README.md) 12 | - [@solana-agent-kit/plugin-misc](@solana-agent-kit/plugin-misc/README.md) 13 | - [@solana-agent-kit/plugin-nft](@solana-agent-kit/plugin-nft/README.md) 14 | - [@solana-agent-kit/plugin-token](@solana-agent-kit/plugin-token/README.md) 15 | - [solana-agent-kit](solana-agent-kit/README.md) 16 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/blink-eye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/retweet-idle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/n8n-solana-agent/gulpfile.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const { task, src, dest } = require('gulp'); 3 | 4 | task('build:icons', copyIcons); 5 | 6 | function copyIcons() { 7 | const nodeSource = path.resolve('nodes', '**', '*.{png,svg}'); 8 | const nodeDestination = path.resolve('dist', 'nodes'); 9 | 10 | src(nodeSource).pipe(dest(nodeDestination)); 11 | 12 | const credSource = path.resolve('credentials', '**', '*.{png,svg}'); 13 | const credDestination = path.resolve('dist', 'credentials'); 14 | 15 | return src(credSource).pipe(dest(credDestination)); 16 | } 17 | 18 | module.exports = { copyIcons }; 19 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/components/ui/icon.tsx: -------------------------------------------------------------------------------- 1 | import { Icon as IconifyIcon } from '@iconify/react'; 2 | import { cn } from '../../lib/utils'; 3 | import React from 'react'; 4 | 5 | export interface IconProps { 6 | name: string; 7 | className?: string; 8 | width?: string | number; 9 | height?: string | number; 10 | color?: string; 11 | [key: string]: any; 12 | } 13 | 14 | export function Icon({ name, className, ...props }: IconProps) { 15 | return ( 16 | 21 | ); 22 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/routes/_authed.tsx: -------------------------------------------------------------------------------- 1 | import { createFileRoute, redirect } from "@tanstack/react-router"; 2 | import { fetchSession } from "~/functions/session"; 3 | 4 | export const Route = createFileRoute("/_authed")({ 5 | beforeLoad: async () => { 6 | const session = await fetchSession(); 7 | 8 | if (!session?.email && !session?.walletAddress) { 9 | throw redirect({ 10 | to: "/", 11 | search: { 12 | errMsg: 13 | "Crossmint not connected. Please connect to Crossmint before accessing chats", 14 | }, 15 | }); 16 | } 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/routes/_authed.tsx: -------------------------------------------------------------------------------- 1 | import { createFileRoute, redirect } from "@tanstack/react-router"; 2 | import { fetchSession } from "~/functions/session"; 3 | 4 | export const Route = createFileRoute("/_authed")({ 5 | beforeLoad: async () => { 6 | const session = await fetchSession(); 7 | 8 | if (!session?.email && !session?.walletAddress) { 9 | throw redirect({ 10 | to: "/", 11 | search: { 12 | errMsg: 13 | "Privy not connected. Please connect to Privy before accessing chats", 14 | }, 15 | }); 16 | } 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2024 Vercel, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/components/ui/icon.tsx: -------------------------------------------------------------------------------- 1 | import { Icon as IconifyIcon } from '@iconify/react'; 2 | import { cn } from '../../lib/utils'; 3 | import React from 'react'; 4 | 5 | export interface IconProps { 6 | name: string; 7 | className?: string; 8 | width?: string | number; 9 | height?: string | number; 10 | color?: string; 11 | [key: string]: any; 12 | } 13 | 14 | export function Icon({ name, className, ...props }: IconProps) { 15 | return ( 16 | 21 | ); 22 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/device.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/magnifying-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/magnifying-glass-selected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/pin-location.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/solana-agent-kit/variables/feeTiers.md: -------------------------------------------------------------------------------- 1 | [**Documentation v2**](../../README.md) 2 | 3 | *** 4 | 5 | [Documentation](../../README.md) / [solana-agent-kit](../README.md) / feeTiers 6 | 7 | # Variable: feeTiers 8 | 9 | > `const` **feeTiers**: `object` 10 | 11 | Defined in: [packages/core/src/utils/send\_tx.ts:14](https://github.com/scriptscrypt/solana-agent-kit/blob/8d48a57968ef71c6851a44a8efa685e80e815610/packages/core/src/utils/send_tx.ts#L14) 12 | 13 | ## Type declaration 14 | 15 | ### max 16 | 17 | > **max**: `number` = `0.95` 18 | 19 | ### mid 20 | 21 | > **mid**: `number` = `0.5` 22 | 23 | ### min 24 | 25 | > **min**: `number` = `0.01` 26 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["**/*.ts", "**/*.tsx"], 3 | "compilerOptions": { 4 | "strict": true, 5 | "esModuleInterop": true, 6 | "jsx": "react-jsx", 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "lib": ["DOM", "DOM.Iterable", "ES2022"], 10 | "isolatedModules": true, 11 | "resolveJsonModule": true, 12 | "skipLibCheck": true, 13 | "target": "ES2022", 14 | "allowJs": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "baseUrl": ".", 17 | "paths": { 18 | "~/*": ["./src/*"] 19 | }, 20 | "noEmit": true 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/types/token.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for token data used in the ecosystem updates section 2 | 3 | export interface TokenData { 4 | symbol: string; 5 | name: string; 6 | price: string; 7 | change: string; 8 | isPositive: boolean; 9 | iconGradient: { 10 | from: string; 11 | to: string; 12 | }; 13 | chartPath: string; 14 | links: { 15 | dexscreener: string; 16 | twitter: string; 17 | website?: string; 18 | }; 19 | icon?: React.ReactNode; 20 | logoUrl?: string; 21 | description?: string; 22 | marketCap?: string; 23 | volume24h?: string; 24 | mintAddress?: string; 25 | } -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/db/schema.ts: -------------------------------------------------------------------------------- 1 | import { integer, pgTable, text, pgEnum, bigint } from "drizzle-orm/pg-core"; 2 | 3 | export const usersTable = pgTable("users", { 4 | id: bigint({ mode: "number" }).primaryKey().notNull(), 5 | address: text().notNull(), 6 | walletId: text().notNull(), 7 | }); 8 | 9 | export const roleEnum = pgEnum("role", ["user", "assistant"]); 10 | 11 | export const messagesTable = pgTable("messages", { 12 | id: text().primaryKey().notNull(), 13 | text: text().notNull(), 14 | createdAt: bigint({ mode: "number" }).notNull(), 15 | chatId: bigint({ mode: "number" }).notNull(), 16 | role: roleEnum(), 17 | }); 18 | -------------------------------------------------------------------------------- /packages/core/src/index.ts: -------------------------------------------------------------------------------- 1 | import { SolanaAgentKit } from "./agent"; 2 | import { createOpenAITools } from "./openai"; 3 | import { createLangchainTools } from "./langchain"; 4 | import { createSolanaTools as createVercelAITools } from "./vercel-ai"; 5 | 6 | export { 7 | SolanaAgentKit, 8 | createVercelAITools, 9 | createLangchainTools, 10 | createOpenAITools, 11 | }; 12 | 13 | // Optional: Export types that users might need 14 | export * from "./types"; 15 | export * from "./types/wallet"; 16 | export * from "./utils/actionExecutor"; 17 | export * from "./utils/send_tx"; 18 | export * from "./utils/keypairWallet"; 19 | export * from "./utils/getMintInfo"; 20 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/types/token.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for token data used in the ecosystem updates section 2 | 3 | export interface TokenData { 4 | symbol: string; 5 | name: string; 6 | price: string; 7 | change: string; 8 | isPositive: boolean; 9 | iconGradient: { 10 | from: string; 11 | to: string; 12 | }; 13 | chartPath: string; 14 | links: { 15 | dexscreener: string; 16 | twitter: string; 17 | website?: string; 18 | }; 19 | icon?: React.ReactNode; 20 | logoUrl?: string; 21 | description?: string; 22 | marketCap?: string; 23 | volume24h?: string; 24 | mintAddress?: string; 25 | } -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["**/*.ts", "**/*.tsx"], 3 | "compilerOptions": { 4 | "strict": true, 5 | "esModuleInterop": true, 6 | "jsx": "react-jsx", 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "lib": ["DOM", "DOM.Iterable", "ES2022"], 10 | "isolatedModules": true, 11 | "resolveJsonModule": true, 12 | "skipLibCheck": true, 13 | "target": "ES2022", 14 | "allowJs": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "baseUrl": ".", 17 | "paths": { 18 | "~/*": ["./src/*"] 19 | }, 20 | "noEmit": true 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/reaction-idle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/solana-agent-kit/functions/getActionExamples.md: -------------------------------------------------------------------------------- 1 | [**Documentation v2**](../../README.md) 2 | 3 | *** 4 | 5 | [Documentation](../../README.md) / [solana-agent-kit](../README.md) / getActionExamples 6 | 7 | # Function: getActionExamples() 8 | 9 | > **getActionExamples**(`action`): `string` 10 | 11 | Defined in: [packages/core/src/utils/actionExecutor.ts:45](https://github.com/scriptscrypt/solana-agent-kit/blob/8d48a57968ef71c6851a44a8efa685e80e815610/packages/core/src/utils/actionExecutor.ts#L45) 12 | 13 | Get examples for an action 14 | 15 | ## Parameters 16 | 17 | ### action 18 | 19 | [`Action`](../interfaces/Action.md) 20 | 21 | ## Returns 22 | 23 | `string` 24 | -------------------------------------------------------------------------------- /docs/v1/functions/getActionExamples.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "getActionExamples" 3 | description: "Documentation for getActionExamples" 4 | --- 5 | 6 | [**solana-agent-kit v1.3.7**](../README.md) 7 | 8 | *** 9 | 10 | [solana-agent-kit](../README.md) / getActionExamples 11 | 12 | # Function: getActionExamples() 13 | 14 | > **getActionExamples**(`action`): `string` 15 | 16 | Defined in: [utils/actionExecutor.ts:58](https://github.com/sendaifun/solana-agent-kit/blob/6acfa958180602da3c2d2ac883bf660ca90dba2f/src/utils/actionExecutor.ts#L58) 17 | 18 | Get examples for an action 19 | 20 | ## Parameters 21 | 22 | ### action 23 | 24 | `Action` 25 | 26 | ## Returns 27 | 28 | `string` 29 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/Swap.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/grid-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Additional context** 27 | Add any other context about the problem here. 28 | -------------------------------------------------------------------------------- /docs/v1/functions/findAction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "findAction" 3 | description: "Documentation for findAction" 4 | --- 5 | 6 | [**solana-agent-kit v1.3.7**](../README.md) 7 | 8 | *** 9 | 10 | [solana-agent-kit](../README.md) / findAction 11 | 12 | # Function: findAction() 13 | 14 | > **findAction**(`query`): `Action` \| `undefined` 15 | 16 | Defined in: [utils/actionExecutor.ts:8](https://github.com/sendaifun/solana-agent-kit/blob/6acfa958180602da3c2d2ac883bf660ca90dba2f/src/utils/actionExecutor.ts#L8) 17 | 18 | Find an action by its name or one of its similes 19 | 20 | ## Parameters 21 | 22 | ### query 23 | 24 | `string` 25 | 26 | ## Returns 27 | 28 | `Action` \| `undefined` 29 | -------------------------------------------------------------------------------- /examples/defi/market-making-agent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "market-making-agent", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "main": "ts-node index.ts" 8 | }, 9 | "dependencies": { 10 | "@langchain/core": "^0.3.51", 11 | "@langchain/langgraph": "^0.2.67", 12 | "@langchain/langgraph-checkpoint-postgres": "^0.0.2", 13 | "@langchain/openai": "^0.5.10", 14 | "@solana-agent-kit/plugin-defi": "^2.0.3", 15 | "@solana-agent-kit/plugin-token": "^2.0.3", 16 | "@solana/web3.js": "^1.98.2", 17 | "bs58": "^6.0.0", 18 | "dotenv": "^16.5.0", 19 | "solana-agent-kit": "^2.0.3" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/privy-tg-bot/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["ESNext"], 4 | "target": "ESNext", 5 | "module": "ESNext", 6 | "moduleDetection": "force", 7 | "jsx": "react-jsx", 8 | "allowJs": true, 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | "verbatimModuleSyntax": true, 12 | "noEmit": true, 13 | "strict": true, 14 | "skipLibCheck": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "noUncheckedIndexedAccess": true, 17 | "noUnusedLocals": false, 18 | "noUnusedParameters": false, 19 | "noPropertyAccessFromIndexSignature": false 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/alldomains/tools/get_all_domains_tlds.ts: -------------------------------------------------------------------------------- 1 | import { getAllTld } from "@onsol/tldparser"; 2 | import { SolanaAgentKit } from "solana-agent-kit"; 3 | 4 | /** 5 | * Get all active top-level domains (TLDs) in the AllDomains Name Service 6 | * @param agent SolanaAgentKit instance 7 | * @returns Array of active TLD strings 8 | */ 9 | export async function getAllDomainsTLDs( 10 | agent: SolanaAgentKit, 11 | ): Promise { 12 | try { 13 | const tlds = await getAllTld(agent.connection); 14 | return tlds.map((tld) => String(tld.tld)); 15 | } catch (error: any) { 16 | throw new Error(`Failed to fetch TLDs: ${error.message}`); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # react-native-reanimated 11 | -keep class com.swmansion.reanimated.** { *; } 12 | -keep class com.facebook.react.turbomodule.** { *; } 13 | 14 | # Add any project specific keep options here: 15 | -------------------------------------------------------------------------------- /examples/misc/agent-kit-nextjs-langchain/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | 37 | .yarn/* 38 | !.yarn/patches 39 | !.yarn/plugins 40 | !.yarn/releases 41 | !.yarn/sdks 42 | !.yarn/versions 43 | .env -------------------------------------------------------------------------------- /examples/embedded-wallets/para-plugin-example/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | 37 | .yarn/* 38 | !.yarn/patches 39 | !.yarn/plugins 40 | !.yarn/releases 41 | !.yarn/sdks 42 | !.yarn/versions 43 | .env -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/.env.example: -------------------------------------------------------------------------------- 1 | # Create an OpenAI subscription and copy your environment variables from your dashboard. 2 | OPENAI_API_KEY= 3 | VITE_OPENAI_API_KEY= 4 | 5 | # Privy, reference https://docs.privy.io 6 | VITE_PRIVY_CLIENT_ID= 7 | VITE_PRIVY_APP_ID= 8 | PRIVY_APP_SECRET= 9 | 10 | # Supabase - This can be gotten from Vercel or Supabase dashboard 11 | # You can create a Supabase instance on vercel with their add ons, link it to your project and use the environment variables from there. 12 | # Database configuration 13 | POSTGRES_URL= 14 | 15 | # A solana RPC URL that can be gotten from helius, quicknode, or any other RPC providers 16 | VITE_RPC_URL= 17 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/hooks/use-mobile.ts: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | const MOBILE_BREAKPOINT = 768 4 | 5 | export function useIsMobile() { 6 | const [isMobile, setIsMobile] = React.useState(undefined) 7 | 8 | React.useEffect(() => { 9 | const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`) 10 | const onChange = () => { 11 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 12 | } 13 | mql.addEventListener("change", onChange) 14 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 15 | return () => mql.removeEventListener("change", onChange) 16 | }, []) 17 | 18 | return !!isMobile 19 | } 20 | -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/lib/ai/tools/get-weather.ts: -------------------------------------------------------------------------------- 1 | import { tool } from 'ai'; 2 | import { z } from 'zod'; 3 | 4 | export const getWeather = tool({ 5 | description: 'Get the current weather at a location', 6 | parameters: z.object({ 7 | latitude: z.number(), 8 | longitude: z.number(), 9 | }), 10 | execute: async ({ latitude, longitude }) => { 11 | const response = await fetch( 12 | `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}¤t=temperature_2m&hourly=temperature_2m&daily=sunrise,sunset&timezone=auto`, 13 | ); 14 | 15 | const weatherData = await response.json(); 16 | return weatherData; 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | RPC_URL= 3 | SOLANA_PRIVATE_KEY= 4 | JUPITER_REFERRAL_ACCOUNT= 5 | JUPITER_FEE_BPS= 6 | FLASH_PRIVILEGE= referral | nft | none 7 | FLEXLEND_API_KEY= 8 | HELIUS_API_KEY= 9 | ETHEREUM_PRIVATE_KEY= 10 | ALLORA_API_KEY= 11 | ALLORA_API_URL= 12 | ALLORA_NETWORK= testnet | mainnet 13 | ELFA_AI_API_KEY= 14 | 15 | # OKX DEX 16 | OKX_API_KEY= 17 | OKX_SECRET_KEY= 18 | OKX_API_PASSPHRASE= 19 | OKX_PROJECT_ID= 20 | OKX_SOLANA_WALLET_ADDRESS= 21 | OKX_SOLANA_PRIVATE_KEY= 22 | 23 | # Wormhole 24 | SUI_MNEMONIC= 25 | APTOS_PRIVATE_KEY= 26 | ETH_PRIVATE_KEY= 27 | LANGSMITH_TRACING=true 28 | LANGSMITH_ENDPOINT=https://api.smith.langchain.com 29 | LANGSMITH_API_KEY= 30 | LANGSMITH_PROJECT= 31 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.* 7 | .yarn/* 8 | !.yarn/patches 9 | !.yarn/plugins 10 | !.yarn/releases 11 | !.yarn/versions 12 | 13 | # testing 14 | /coverage 15 | 16 | # next.js 17 | /.next/ 18 | /out/ 19 | 20 | # production 21 | /build 22 | 23 | # misc 24 | .DS_Store 25 | *.pem 26 | 27 | # debug 28 | npm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* 31 | .pnpm-debug.log* 32 | 33 | # env files (can opt-in for committing if needed) 34 | .env* 35 | 36 | # vercel 37 | .vercel 38 | 39 | # typescript 40 | *.tsbuildinfo 41 | next-env.d.ts 42 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/public/icons/website.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /packages/plugin-nft/src/metaplex/tools/search_assets.ts: -------------------------------------------------------------------------------- 1 | import { 2 | SearchAssetsRpcInput, 3 | dasApi, 4 | } from "@metaplex-foundation/digital-asset-standard-api"; 5 | import { SolanaAgentKit } from "solana-agent-kit"; 6 | import { initUmi } from "../../utils"; 7 | 8 | /** 9 | * Search for assets using the Metaplex DAS API 10 | * @param agent SolanaAgentKit instance 11 | * @param params Parameters for searching assets 12 | * @returns List of assets matching the search criteria 13 | */ 14 | export async function search_assets( 15 | agent: SolanaAgentKit, 16 | params: SearchAssetsRpcInput, 17 | ) { 18 | const umi = initUmi(agent).use(dasApi()); 19 | return await umi.rpc.searchAssets(params); 20 | } 21 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/src/hooks/use-mobile.ts: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | const MOBILE_BREAKPOINT = 768 4 | 5 | export function useIsMobile() { 6 | const [isMobile, setIsMobile] = React.useState(undefined) 7 | 8 | React.useEffect(() => { 9 | const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`) 10 | const onChange = () => { 11 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 12 | } 13 | mql.addEventListener("change", onChange) 14 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 15 | return () => mql.removeEventListener("change", onChange) 16 | }, []) 17 | 18 | return !!isMobile 19 | } 20 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/advanced-tg-bot/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.* 7 | .yarn/* 8 | !.yarn/patches 9 | !.yarn/plugins 10 | !.yarn/releases 11 | !.yarn/versions 12 | 13 | # testing 14 | /coverage 15 | 16 | # next.js 17 | /.next/ 18 | /out/ 19 | 20 | # production 21 | /build 22 | 23 | # misc 24 | .DS_Store 25 | *.pem 26 | 27 | # debug 28 | npm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* 31 | .pnpm-debug.log* 32 | 33 | # env files (can opt-in for committing if needed) 34 | .env 35 | 36 | # vercel 37 | .vercel 38 | 39 | # typescript 40 | *.tsbuildinfo 41 | next-env.d.ts 42 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/basic-tg-bot/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.* 7 | .yarn/* 8 | !.yarn/patches 9 | !.yarn/plugins 10 | !.yarn/releases 11 | !.yarn/versions 12 | 13 | # testing 14 | /coverage 15 | 16 | # next.js 17 | /.next/ 18 | /out/ 19 | 20 | # production 21 | /build 22 | 23 | # misc 24 | .DS_Store 25 | *.pem 26 | 27 | # debug 28 | npm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* 31 | .pnpm-debug.log* 32 | 33 | # env files (can opt-in for committing if needed) 34 | .env 35 | 36 | # vercel 37 | .vercel 38 | 39 | # typescript 40 | *.tsbuildinfo 41 | next-env.d.ts 42 | -------------------------------------------------------------------------------- /examples/social/tg-bot-starter/group-tg-bot/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.* 7 | .yarn/* 8 | !.yarn/patches 9 | !.yarn/plugins 10 | !.yarn/releases 11 | !.yarn/versions 12 | 13 | # testing 14 | /coverage 15 | 16 | # next.js 17 | /.next/ 18 | /out/ 19 | 20 | # production 21 | /build 22 | 23 | # misc 24 | .DS_Store 25 | *.pem 26 | 27 | # debug 28 | npm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* 31 | .pnpm-debug.log* 32 | 33 | # env files (can opt-in for committing if needed) 34 | .env 35 | 36 | # vercel 37 | .vercel 38 | 39 | # typescript 40 | *.tsbuildinfo 41 | next-env.d.ts 42 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/.env.example: -------------------------------------------------------------------------------- 1 | # Create an OpenAI subscription and copy your environment variables from your dashboard. 2 | OPENAI_API_KEY= 3 | VITE_OPENAI_API_KEY= 4 | 5 | # Supabase - This can be gotten from Vercel or Supabase dashboard 6 | # You can create a Supabase instance on vercel with their add ons, link it to your project and use the environment variables from there. 7 | # Database configuration 8 | POSTGRES_URL= 9 | 10 | # A solana RPC URL that can be gotten from helius, quicknode, or any other RPC providers 11 | VITE_RPC_URL= 12 | 13 | VITE_CROSSMINT_API_KEY= 14 | 15 | # Instructions to create a Vercel Blob Store here: https://vercel.com/docs/storage/vercel-blob 16 | BLOB_READ_WRITE_TOKEN= -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-agent-tanstack-starter/public/icons/website.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/token-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/social/discord-bot-starter/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": true, 3 | "compilerOptions": { 4 | "baseUrl": ".", 5 | "rootDir": "./src", 6 | "outDir": "./build", 7 | "sourceMap": true, 8 | "declaration": false, 9 | "module": "commonjs", 10 | "moduleResolution": "node", 11 | "target": "es2020", 12 | "typeRoots": ["node_modules/@types"], 13 | "lib": ["es2018", "dom", "esnext.asynciterable"], 14 | "plugins": [{ "transform": "typescript-transform-paths" }], 15 | "allowSyntheticDefaultImports": true, 16 | "esModuleInterop": true, 17 | "skipLibCheck": true, 18 | "forceConsistentCasingInFileNames": true, 19 | "resolveJsonModule": true 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/tools/fetch_token_by_mint.ts: -------------------------------------------------------------------------------- 1 | import { MemetusPumpfun, TokenResponse } from "@0xobedient/memetus-pumpfun-sdk"; 2 | 3 | /** 4 | * @name fetchTokenByMint 5 | * @description Filter by a specific token address 6 | * @param address, string, address of token mint(required) 7 | * @link https://www.npmjs.com/package/@0xobedient/memetus-pumpfun-sdk 8 | */ 9 | export async function fetch_token_by_mint( 10 | address: string 11 | ): Promise { 12 | try { 13 | const client = new MemetusPumpfun(); 14 | const result = await client.fetchTokenByAddress(address); 15 | 16 | return result; 17 | } catch (error) { 18 | throw error; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/src/components/CrossmintProvider.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | CrossmintProvider as CrossmintSDKProvider, 3 | CrossmintAuthProvider, 4 | } from "@crossmint/client-sdk-react-ui"; 5 | 6 | export function CrossmintProvider({ children }: { children: React.ReactNode }) { 7 | const crossmintApiKey = import.meta.env.VITE_CROSSMINT_API_KEY; 8 | 9 | return ( 10 | 11 | 17 | {children} 18 | 19 | 20 | ); 21 | } -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/hooks/use-mobile.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | const MOBILE_BREAKPOINT = 768; 4 | 5 | export function useIsMobile() { 6 | const [isMobile, setIsMobile] = React.useState( 7 | undefined, 8 | ); 9 | 10 | React.useEffect(() => { 11 | const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); 12 | const onChange = () => { 13 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); 14 | }; 15 | mql.addEventListener('change', onChange); 16 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); 17 | return () => mql.removeEventListener('change', onChange); 18 | }, []); 19 | 20 | return !!isMobile; 21 | } 22 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/components/ui/card.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | interface CardProps { 4 | className?: string; 5 | children: React.ReactNode; 6 | } 7 | 8 | export const Card: React.FC = ({ className = '', children }) => { 9 | return ( 10 |
11 | {children} 12 |
13 | ); 14 | }; 15 | 16 | interface CardContentProps { 17 | className?: string; 18 | children: React.ReactNode; 19 | } 20 | 21 | export const CardContent: React.FC = ({ className = '', children }) => { 22 | return ( 23 |
24 | {children} 25 |
26 | ); 27 | }; -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/server/models/Chat.ts: -------------------------------------------------------------------------------- 1 | import mongoose, { Document, Schema } from 'mongoose'; 2 | 3 | export interface IChat extends Document { 4 | id: string; 5 | title: string; 6 | userId: string; 7 | createdAt: Date; 8 | updatedAt: Date; 9 | } 10 | 11 | const ChatSchema = new Schema( 12 | { 13 | id: { 14 | type: String, 15 | required: true, 16 | unique: true, 17 | }, 18 | title: { 19 | type: String, 20 | required: true, 21 | }, 22 | userId: { 23 | type: String, 24 | required: true, 25 | index: true, 26 | }, 27 | }, 28 | { timestamps: true } 29 | ); 30 | 31 | export default mongoose.model('Chat', ChatSchema); -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "allowSyntheticDefaultImports": true, 10 | "noEmit": false, 11 | "esModuleInterop": true, 12 | "module": "esnext", 13 | "moduleResolution": "node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "jsx": "react-jsx", 17 | "sourceMap": true, 18 | "baseUrl": ".", 19 | "paths": { 20 | "@packages/*": ["packages/*"] 21 | } 22 | }, 23 | "include": ["packages/**/*"], 24 | "exclude": ["node_modules", "dist"] 25 | } 26 | -------------------------------------------------------------------------------- /docs/v1/functions/createVercelAITools.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "createVercelAITools" 3 | description: "Documentation for createVercelAITools" 4 | --- 5 | 6 | [**solana-agent-kit v1.3.7**](../README.md) 7 | 8 | *** 9 | 10 | [solana-agent-kit](../README.md) / createVercelAITools 11 | 12 | # Function: createVercelAITools() 13 | 14 | > **createVercelAITools**(`solanaAgentKit`): `Record`\<`string`, `CoreTool`\> 15 | 16 | Defined in: [vercel-ai/index.ts:6](https://github.com/sendaifun/solana-agent-kit/blob/6acfa958180602da3c2d2ac883bf660ca90dba2f/src/vercel-ai/index.ts#L6) 17 | 18 | ## Parameters 19 | 20 | ### solanaAgentKit 21 | 22 | [`SolanaAgentKit`](../classes/SolanaAgentKit.md) 23 | 24 | ## Returns 25 | 26 | `Record`\<`string`, `CoreTool`\> 27 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svgs/Union.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/embedded-wallets/crossmint-sak-v2/db/migrations/0000_keen_devos.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS "Chat" ( 2 | "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, 3 | "createdAt" timestamp NOT NULL, 4 | "messages" json NOT NULL, 5 | "userId" uuid NOT NULL 6 | ); 7 | --> statement-breakpoint 8 | CREATE TABLE IF NOT EXISTS "User" ( 9 | "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, 10 | "email" varchar(64) NOT NULL, 11 | "password" varchar(64) 12 | ); 13 | --> statement-breakpoint 14 | DO $$ BEGIN 15 | ALTER TABLE "Chat" ADD CONSTRAINT "Chat_userId_User_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE no action ON UPDATE no action; 16 | EXCEPTION 17 | WHEN duplicate_object THEN null; 18 | END $$; 19 | -------------------------------------------------------------------------------- /examples/embedded-wallets/privy-sak-react-native/src/assets/svg/SearchIcon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Svg, { Path } from 'react-native-svg'; 3 | 4 | type Props = { 5 | size?: number; 6 | color?: string; 7 | }; 8 | 9 | const SearchIcon = ({ size = 24, color = '#666' }: Props) => ( 10 | 11 | 15 | 16 | ); 17 | 18 | export default SearchIcon; -------------------------------------------------------------------------------- /examples/misc/privy-server-wallet-agent/tests/reasoning.setup.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path'; 2 | import { expect, test as setup } from '@playwright/test'; 3 | import { ChatPage } from './pages/chat'; 4 | 5 | const reasoningFile = path.join( 6 | __dirname, 7 | '../playwright/.reasoning/session.json', 8 | ); 9 | 10 | setup('switch to reasoning model', async ({ page }) => { 11 | const chatPage = new ChatPage(page); 12 | await chatPage.createNewChat(); 13 | 14 | await chatPage.chooseModelFromSelector('chat-model-reasoning'); 15 | 16 | await expect(chatPage.getSelectedModel()).resolves.toEqual('Reasoning model'); 17 | 18 | await page.waitForTimeout(1000); 19 | await page.context().storageState({ path: reasoningFile }); 20 | }); 21 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/tools/fetch_token_by_creator.ts: -------------------------------------------------------------------------------- 1 | import { MemetusPumpfun, TokenResponse } from "@0xobedient/memetus-pumpfun-sdk"; 2 | 3 | /** 4 | * @name fetchTokenByCreator 5 | * @description Fetch tokens filter with created by a specific creator 6 | * @param address, string, address of creator (required) 7 | * @link https://www.npmjs.com/package/@0xobedient/memetus-pumpfun-sdk 8 | */ 9 | export async function fetch_token_by_creator( 10 | address: string 11 | ): Promise { 12 | try { 13 | const client = new MemetusPumpfun(); 14 | const result = await client.fetchTokenByCreator(address); 15 | 16 | return result; 17 | } catch (error) { 18 | throw error; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/ottersec/tools/get_verified_programs.ts: -------------------------------------------------------------------------------- 1 | import { OSEC_ENDPOINT_URI, OSEC_ROUTER } from "../constants"; 2 | import { GetVerifiedProgramsParams } from "../types"; 3 | 4 | /** 5 | * @name get_verified_programs 6 | * @description Get list of all verified programs 7 | * @param pageParams 8 | */ 9 | 10 | export async function get_verified_programs( 11 | pageParams: GetVerifiedProgramsParams 12 | ) { 13 | try { 14 | const { page } = pageParams; 15 | const response = await fetch( 16 | OSEC_ENDPOINT_URI + OSEC_ROUTER.GET_VERIFIED_PROGRAM + page 17 | ); 18 | 19 | const data = await response.json(); 20 | 21 | return data; 22 | } catch (error) { 23 | throw error; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/agentTests/index.ts: -------------------------------------------------------------------------------- 1 | import type { SolanaAgentKit } from "solana-agent-kit"; 2 | import { chooseAgent } from "../utils"; 3 | import langchainAITests from "./langchain"; 4 | import vercelAITests from "./vercel-ai"; 5 | import openAITests from "./openai"; 6 | 7 | export default async function aiTests(agentKit: SolanaAgentKit) { 8 | const agent = await chooseAgent([ 9 | "vercel-ai", 10 | "langchain", 11 | "openai", 12 | ] as const); 13 | 14 | switch (agent) { 15 | case "vercel-ai": 16 | await vercelAITests(agentKit); 17 | break; 18 | case "langchain": 19 | await langchainAITests(agentKit); 20 | break; 21 | case "openai": 22 | await openAITests(agentKit); 23 | break; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/plugin-misc/src/homomemetus/tools/fetch_tokens_by_mints.ts: -------------------------------------------------------------------------------- 1 | import { MemetusPumpfun, TokenResponse } from "@0xobedient/memetus-pumpfun-sdk"; 2 | 3 | /** 4 | * @name fetchTokensByMints 5 | * @description Filter by a specific token addresses 6 | * @param addresses, string[], List of tokens mint addresses (required) 7 | * @link https://www.npmjs.com/package/@0xobedient/memetus-pumpfun-sdk 8 | */ 9 | export async function fetch_tokens_by_mints( 10 | addresses: string[] 11 | ): Promise { 12 | try { 13 | const client = new MemetusPumpfun(); 14 | const result = await client.fetchTokensByAddresses(addresses); 15 | 16 | return result; 17 | } catch (error) { 18 | throw error; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/defi/wormhole-nextjs-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2017", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /docs/solana-agent-kit/functions/createVercelAITools.md: -------------------------------------------------------------------------------- 1 | [**Documentation v2**](../../README.md) 2 | 3 | *** 4 | 5 | [Documentation](../../README.md) / [solana-agent-kit](../README.md) / createVercelAITools 6 | 7 | # Function: createVercelAITools() 8 | 9 | > **createVercelAITools**(`solanaAgentKit`, `actions`): `Record`\<`string`, `CoreTool`\> 10 | 11 | Defined in: [packages/core/src/vercel-ai/index.ts:6](https://github.com/scriptscrypt/solana-agent-kit/blob/8d48a57968ef71c6851a44a8efa685e80e815610/packages/core/src/vercel-ai/index.ts#L6) 12 | 13 | ## Parameters 14 | 15 | ### solanaAgentKit 16 | 17 | [`SolanaAgentKit`](../classes/SolanaAgentKit.md) 18 | 19 | ### actions 20 | 21 | `Action`[] 22 | 23 | ## Returns 24 | 25 | `Record`\<`string`, `CoreTool`\> 26 | --------------------------------------------------------------------------------