diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..9f6498a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,31 @@ +# Use the latest 2.1 version of CircleCI pipeline process engine. +# See: https://circleci.com/docs/configuration-reference +version: 2.1 +# +# Define a job to be invoked later in a workflow. +# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs +jobs: + say-hello: + # Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub. + # See: https://circleci.com/docs/executor-intro/ & https://circleci.com/docs/configuration-reference/#executor-job + docker: + # Specify the version you desire here + # See: https://circleci.com/developer/images/image/cimg/base + - image: cimg/base:current + + # Add steps to the job + # See: https://circleci.com/docs/jobs-steps/#steps-overview & https://circleci.com/docs/configuration-reference/#steps + steps: + # Checkout the code as the first step. + - checkout + - run: + name: "Say hello" + command: "echo Hello, World!" + +# Orchestrate jobs using workflows +# See: https://circleci.com/docs/workflows/ & https://circleci.com/docs/configuration-reference/#workflows +workflows: + say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow. + # Inside the workflow, you define the jobs you want to run. + jobs: + - say-hello diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..3d40a6a --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @alchemyplatform/wallet-services diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..80995d3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. Chrome, Safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone 6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md new file mode 100644 index 0000000..48d5f81 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -0,0 +1,10 @@ +--- +name: Custom issue template +about: Describe this issue template's purpose here. +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..72cc8d0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. e.g., I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..79e54d6 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "npm" + directory: "/accept-a-payment/" + schedule: + interval: "weekly" + - package-ecosystem: "npm" + directory: "/accept-a-payment/client/" + schedule: + interval: "weekly" + - package-ecosystem: "npm" + directory: "/accept-a-payment/server/" + schedule: + interval: "weekly" + - package-ecosystem: "npm" + directory: "/alchemy-demo/" + schedule: + interval: "weekly" diff --git a/.github/workflows/Vercel Preview Deployment.yml b/.github/workflows/Vercel Preview Deployment.yml new file mode 100644 index 0000000..ca7ca97 --- /dev/null +++ b/.github/workflows/Vercel Preview Deployment.yml @@ -0,0 +1,22 @@ +name: Playwright Tests + +on: + repository_dispatch: + types: + - 'vercel.deployment.success' +permissions: + contents: read +jobs: + run-e2es: + if: github.event_name == 'repository_dispatch' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.client_payload.git.sha }} + - name: Install dependencies + run: npm ci && npx playwright install --with-deps + - name: Run tests + run: npx playwright test + env: + BASE_URL: ${{ github.event.client_payload.url }} diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/accounts-ui-kit.iml b/.idea/accounts-ui-kit.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/accounts-ui-kit.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml new file mode 100644 index 0000000..4accbfe --- /dev/null +++ b/.idea/caches/deviceStreaming.xml @@ -0,0 +1,1971 @@ + + + + + + \ No newline at end of file diff --git a/.idea/markdown.xml b/.idea/markdown.xml new file mode 100644 index 0000000..c61ea33 --- /dev/null +++ b/.idea/markdown.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..862d09b --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..518f2e3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..0726e93 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + { + "lastFilter": { + "state": "OPEN", + "assignee": "Dargon789" + } +} + { + "selectedUrlAndAccountId": { + "url": "https://github.com/Dargon789/accounts-ui-kit.git", + "accountId": "901c3c88-76ca-48f1-af81-8988657f5914" + } +} + { + "associatedIndex": 6 +} + + + + { + "keyToString": { + "ModuleVcsDetector.initialDetectionPerformed": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", + "RunOnceActivity.cidr.known.project.marker": "true", + "RunOnceActivity.git.unshallow": "true", + "RunOnceActivity.readMode.enableVisualFormatting": "true", + "cf.first.check.clang-format": "false", + "cidr.known.project.marker": "true", + "git-widget-placeholder": "main", + "ignore.virus.scanning.warn.message": "true", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "C:/Users/Legion/accounts-ui-kit" + } +} + + + + 1773969373195 + + + + + + + \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e11c735 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "githubPullRequests.ignoredPullRequestBranches": [ + "main" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 018c431..dc68a45 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,340 @@ Use this template to get started with **embedded smart wallets** using [Alchemy - One‑click NFT mint (no ETH required) - Server‑side rendering ready – session persisted with cookies - TailwindCSS + shadcn/ui components, React Query, TypeScript +# Smart Wallets + +> Build zero-friction user onboarding and transactions end-to-end with one SDK. + +smart wallets overview + + + Send your first transaction using the SDK or API. + + +## Everything You Need for Onchain Applications + + + + Email, social, biometric, or EOA login. + + + Remove gas fees for users. + + + Multiple transactions in 1 click on EVM & Solana. + + + Pre-built UI components or fully whitelabel. + + + +## Frameworks + + + + Pre-built React components and hooks. + + + Native mobile wallet experiences. + + + Framework-agnostic implementation. + + + Server-side wallet management. + + + +## Common Starting Places + + + + Build an onchain app from scratch with wallets and transactions. + + + Upgrade to smart wallets using EIP-7702 or direct wagmi integration. + + + Add wallet and transaction functionality to existing web2 applications. + + + Server-side applications with signing and sending on your backend. + + + +## Resources + + + + Troubleshoot issues or get in touch. + + + End-to-end guides for common features. + + + Save costs as you scale. + + + +# Choose Your Starting Point + +> Overview of our product offerings + + + + Low-level JSON-RPC for reading & writing blockchain data. + + + + Structured, indexed data for balances, NFTs, prices, and more. + + + + Account abstraction infrastructure for smart wallets. + + + + Launch dedicated rollups with full control over your L2. + + + + + Build faster with production-ready APIs, smart wallets and rollup infrastructure across 70+ chains. Create your free Alchemy API key and + get started today. + + +*** + +## 1. Node API + +The [Node API](/docs/reference/node-api-overview) gives you low-level access to standard JSON-RPC methods for interacting with blockchains. + +Use it for sending transactions, querying blocks and logs, and accessing state. It supports multiple chains; see the [Chain APIs Overview](/docs/reference/chain-apis-overview) page for the full list. + + + + Read & write interface for all blockchains supported by us. + + + + Subscribe to pending transactions, log events, new blocks, and more. + + + + Get insights into transaction processing and onchain activity. + + + + Non-standard RPC methods for inspecting and debugging transactions. + + + + High-performance real-time Solana data streaming interface. + + + +*** + +## 2. Data APIs + +The [Data APIs](/docs/reference/data-overview) provide structured, indexed data that would be difficult to get via RPC alone. + +Use it for NFT metadata, token balances, transaction histories, enriched transfers, and analytics. Optimized for high-volume reads, dashboards, and data-heavy applications. + + + + Build a complete portfolio view of a user's wallet across tokens and NFTs. + + + + Get historical transactions for any address in a single request. + + + + Access real-time and historical token prices. + + + + Find, verify, and display NFTs across major blockchains. + + + + Subscribe to onchain events like transfers, transactions, and balance changes. + + + + Simulate transactions and see their effects before you send them. + + + +*** + +## 3. Wallet APIs / Account Abstraction Infrastructure + +Our [Smart Wallets](/docs/wallets) product gives you everything you need to build zero-friction user flows, from sign-up to checkout, using smart contract accounts. + +Use these APIs to handle user operations, sponsor gas, and implement smart accounts with account abstraction. + + + + Bundler API Quickstart for handling user operations. + + + + Gas Manager API Quickstart for sponsoring gas fees. + + + + Send transactions with smart accounts. + + + +*** + +## 4. Rollups + +Our [Rollups](/docs/reference/rollups-quickstart) product helps you run a dedicated rollup with full control over transaction speed, cost, and functionality. + +Launching a rollup can unlock new revenue streams, enable novel use cases, and provide a better user experience. + +# View the Stack rollup framework. + + + Send your first transaction using the SDK or API. + + +## Everything You Need for Onchain Applications + + + + Email, social, biometric, or EOA login. + + + Remove gas fees for users. + + + Multiple transactions in 1 click on EVM & Solana. + + + Pre-built UI components or fully whitelabel. + + + +## Frameworks + + + + Pre-built React components and hooks. + + + Native mobile wallet experiences. + + + Framework-agnostic implementation. + + + Server-side wallet management. + + ![Smart Wallet Quickstart](https://github.com/user-attachments/assets/2903fb78-e632-4aaa-befd-5775c60e1ca2) +# Feature Support By Chain + +> Alchemy's current feature availability for each of its supported chains + + + + ![[Chains](https://dashboard.alchemy.com/chains)](https://alchemyapi-res.cloudinary.com/image/upload/v1764179964/docs/api-reference/alchemy-transact/transaction-simulation/523fb8a9a9d899921ee1046d0ff1b389967a9976d1c6112ebbbe071ddd1ef374-image.png) + + + ## 📍 Network & Demo Contract This quickstart is configured to run on **Arbitrum Sepolia** testnet, by default. A free demo NFT contract has been deployed specifically for this quickstart, allowing you to mint NFTs without any setup or deployment steps. The contract is pre-configured and ready to use out of the box. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..034e848 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,21 @@ +# Security Policy + +## Supported Versions + +Use this section to tell people about which versions of your project are +currently being supported with security updates. + +| Version | Supported | +| ------- | ------------------ | +| 5.1.x | :white_check_mark: | +| 5.0.x | :x: | +| 4.0.x | :white_check_mark: | +| < 4.0 | :x: | + +## Reporting a Vulnerability + +Use this section to tell people how to report a vulnerability. + +Tell them where to go, how often they can expect to get an update on a +reported vulnerability, what to expect if the vulnerability is accepted or +declined, etc. diff --git a/package.json b/package.json index 2e4afb9..3720d35 100644 --- a/package.json +++ b/package.json @@ -20,22 +20,22 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.511.0", - "next": "14.2.4", + "next": "16.2.3", "react": "^18", "react-dom": "^18", "tailwind-merge": "^3.3.0", "tailwindcss-animate": "^1.0.7", "viem": "2.30.0", - "wagmi": "2.15.4" + "wagmi": "3.0.0" }, "devDependencies": { - "@types/node": "^20", + "@types/node": "^20.14.10", "@types/react": "^18", "@types/react-dom": "^18", - "eslint": "^8.57.0", - "eslint-config-next": "14.2.4", + "eslint": "^9.0.0", + "eslint-config-next": "15.1.4", "postcss": "^8", - "tailwindcss": "^3.4.4", + "tailwindcss": "^4.1.14", "typescript": "^5" } }