diff --git a/content/wallets/pages/concepts/middleware.mdx b/content/wallets/pages/concepts/middleware.mdx index 61c9489d6..8670ed142 100644 --- a/content/wallets/pages/concepts/middleware.mdx +++ b/content/wallets/pages/concepts/middleware.mdx @@ -14,7 +14,7 @@ Middleware allows you to avoid having to write the same flows over and over when When using the [React](/docs/wallets/react/quickstart), [Core](/docs/wallets/core/overview), or - [Infra](/docs/wallets/reference/account-kit/infra) packages, the Smart Account + [Infra](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/infra) packages, the Smart Account Clients are already configured to use the appropriate middleware for your needs. If you want to sponsor gas, the Smart Account Clients in these packages abstract the relevant middleware away since all you need is a @@ -24,7 +24,7 @@ Middleware allows you to avoid having to write the same flows over and over when As mentioned above, the client can be configured with a series of middleware that always run in the same order: 1. `dummyPaymasterAndData` - Generates a dummy paymaster and data for gas estimation if using a paymaster (default: noop) -2. `feeEstimator` - Estimates the fees for a transaction. If you are using Wallet APIs RPCs, use the [`alchemyFeeEstimator`](/docs/wallets/reference/account-kit/infra) middleware. +2. `feeEstimator` - Estimates the fees for a transaction. If you are using Wallet APIs RPCs, use the [`alchemyFeeEstimator`](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/infra) middleware. 3. `gasEstimator` - Estimates the gas limits for a transaction. The default middleware calls the underlying RPC to `eth_estimateUserOperationGas`. 4. `customMiddleware` - Allows you to define custom middleware to run before requesting sponsorship if there are any additional steps you need to take before requesting sponsorship. (default: noop) 5. `paymasterAndData` - Requests gas sponsorship. (default: noop) diff --git a/content/wallets/pages/core/overview.mdx b/content/wallets/pages/core/overview.mdx index 68fee7c46..2333da5a1 100644 --- a/content/wallets/pages/core/overview.mdx +++ b/content/wallets/pages/core/overview.mdx @@ -20,8 +20,8 @@ how you can leverage this package to build your own integration with Wallet APIs `@account-kit/core` is itself a higher level wrapper around the three lower level SDKs: -* [`@account-kit/infra`](/docs/wallets/reference/account-kit/infra) - this package contains all of the Smart Account Client and Gas Manager definitions you need to interact with the infrastructure services. +* [`@account-kit/infra`](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/infra) - this package contains all of the Smart Account Client and Gas Manager definitions you need to interact with the infrastructure services. * [`@account-kit/signer`](/docs/wallets/signer/what-is-a-signer) - this package contains all of the utilities you need to instantiate and interact with the authentication service. This allows you to provision wallets for your users that can be used as owners on smart wallets. -* [`@account-kit/smart-contracts`](/docs/wallets/reference/account-kit/smart-contracts) - this package contains all definitions for the smart contracts and allows you to provision and deploy smart contracts for your users seamlessly. +* [`@account-kit/smart-contracts`](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/smart-contracts) - this package contains all definitions for the smart contracts and allows you to provision and deploy smart contracts for your users seamlessly. Using these packages directly offers you the most control over your stack, but requires significantly more work to get started. diff --git a/content/wallets/pages/low-level-infra/third-party-infrastructure/bundlers.mdx b/content/wallets/pages/low-level-infra/third-party-infrastructure/bundlers.mdx index fa8deadce..be8a451a0 100644 --- a/content/wallets/pages/low-level-infra/third-party-infrastructure/bundlers.mdx +++ b/content/wallets/pages/low-level-infra/third-party-infrastructure/bundlers.mdx @@ -33,7 +33,7 @@ any other provider's URL. ## Splitting bundler traffic and node RPC traffic -You may want to use a different RPC provider for your bundler traffic and your node traffic. This is a common use case, and you can do this by leveraging the [`split`](/docs/wallets/reference/aa-sdk/core/functions/split) transport and passing it to your `createSmartAccountClient` call. For example: +You may want to use a different RPC provider for your bundler traffic and your node traffic. This is a common use case, and you can do this by leveraging the [`split`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/split.mdx) transport and passing it to your `createSmartAccountClient` call. For example: ### Bundler and Gas Manager with third-party RPCs diff --git a/content/wallets/pages/low-level-infra/third-party-infrastructure/chains.mdx b/content/wallets/pages/low-level-infra/third-party-infrastructure/chains.mdx index 7a1b7a53b..4d5979d7e 100644 --- a/content/wallets/pages/low-level-infra/third-party-infrastructure/chains.mdx +++ b/content/wallets/pages/low-level-infra/third-party-infrastructure/chains.mdx @@ -32,4 +32,4 @@ const smartAccountClient = createLightAccountAlchemyClient({ To use non-Alchemy supported chains, use the `createSmartAccountClient` method from `@aa-sdk/core` or any of the non-Alchemy `create*Client` methods exported from `@account-kit/smart-contracts` with a `chain` definition for your chain and a `transport` pointing to your RPC provider. -See [`createSmartAccountClient`](/docs/wallets/reference/aa-sdk/core/functions/createSmartAccountClient) for more information. +See [`createSmartAccountClient`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/createSmartAccountClient.mdx) for more information. diff --git a/content/wallets/pages/react-native/overview.mdx b/content/wallets/pages/react-native/overview.mdx index 331ba4366..2dcc98bc0 100644 --- a/content/wallets/pages/react-native/overview.mdx +++ b/content/wallets/pages/react-native/overview.mdx @@ -7,7 +7,7 @@ slug: wallets/react-native/overview import { ExpoIcon } from "../../components/icons/ExpoIcon"; import { ReactNativeIcon } from "../../components/icons/ReactNativeIcon"; -A simple example for reference purposes is available [here](https://github.com/alchemyplatform/aa-sdk/tree/main/examples/react-native-expo-example). This was built using Expo, but the same principles apply to a bare React Native app as well. +A simple example for reference purposes is available [here](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/examples/react-native-expo-example). This was built using Expo, but the same principles apply to a bare React Native app as well. ## Getting Started diff --git a/content/wallets/pages/react/customization/theme.mdx b/content/wallets/pages/react/customization/theme.mdx index 3acaebdf5..f114cbb54 100644 --- a/content/wallets/pages/react/customization/theme.mdx +++ b/content/wallets/pages/react/customization/theme.mdx @@ -28,7 +28,7 @@ Theme customizations and styling are passed through `withAccountKitUi`, the Wall ## Colors -The [Wallet APIs Theme](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/react/src/tailwind/types.ts) object passed to `withAccountKitUi` supports an overridable `colors` object which accepts a set of color values. Each color is a key-value pair where the key is the name of the color and the value is an object containing the `light` and `dark` mode value to use. +The [Wallet APIs Theme](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/react/src/tailwind/types.ts) object passed to `withAccountKitUi` supports an overridable `colors` object which accepts a set of color values. Each color is a key-value pair where the key is the name of the color and the value is an object containing the `light` and `dark` mode value to use. ### Border colors @@ -173,7 +173,7 @@ The available options are: Unlike colors and border radius, illustration styles are not passed through the Tailwind plugin. -Customize the illustration style of various icons used in the components by passing one of the [enum values](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/react/src/types.ts) to `illustrationStyle` in your `uiConfig` when you call `createConfig`. +Customize the illustration style of various icons used in the components by passing one of the [enum values](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/react/src/types.ts) to `illustrationStyle` in your `uiConfig` when you call `createConfig`. ```ts twoslash import { createConfig } from "@account-kit/react"; diff --git a/content/wallets/pages/react/getting-started/initialization.mdx b/content/wallets/pages/react/getting-started/initialization.mdx index 65e020542..c73f62505 100644 --- a/content/wallets/pages/react/getting-started/initialization.mdx +++ b/content/wallets/pages/react/getting-started/initialization.mdx @@ -23,8 +23,8 @@ This command passes in flags to use Typescript, Tailwind and the next app router You need these three libraries: -* **@account-kit/infra**: Core interfaces and functions for Wallet APIs ([learn more](/docs/wallets/reference/account-kit/infra)) -* **@account-kit/react**: React Hooks, components and utilities for Wallet APIs ([learn more](/docs/wallets/reference/account-kit/react)) +* **@account-kit/infra**: Core interfaces and functions for Wallet APIs ([learn more](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/infra)) +* **@account-kit/react**: React Hooks, components and utilities for Wallet APIs ([learn more](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/react)) * **@tanstack/react-query**: A required async state library to make Wallet APIs react hooks easier to use ([learn more about this library's motivation here](https://tanstack.com/query/latest/docs/framework/react/overview)) Go ahead and install them to the project with a single command: diff --git a/content/wallets/pages/react/login-methods/eoa-login.mdx b/content/wallets/pages/react/login-methods/eoa-login.mdx index d2b042cd9..9dd79e273 100644 --- a/content/wallets/pages/react/login-methods/eoa-login.mdx +++ b/content/wallets/pages/react/login-methods/eoa-login.mdx @@ -110,7 +110,7 @@ If you don't want to use pre-built UI components, you can use React hooks to cus ### EVM connectors -Use the [useConnect](https://www.alchemy.com/docs/wallets/reference/account-kit/react/hooks/useConnect) hook to allow users to connect their EOA via available connectors: +Use the [useConnect](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useConnect.mdx) hook to allow users to connect their EOA via available connectors: ```tsx twoslash // @noErrors diff --git a/content/wallets/pages/react/login-methods/passkey-login.mdx b/content/wallets/pages/react/login-methods/passkey-login.mdx index a8014a27f..b408be16e 100644 --- a/content/wallets/pages/react/login-methods/passkey-login.mdx +++ b/content/wallets/pages/react/login-methods/passkey-login.mdx @@ -66,7 +66,7 @@ type PasskeyAuthType = { }; ``` -You can find the full type definition in the [Account Kit source code](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/react/src/components/auth/types.ts). +You can find the full type definition in the [Account Kit source code](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/react/src/components/auth/types.ts). For more details on UI component customization, see the [UI Components](/docs/wallets/react/ui-components) documentation. diff --git a/content/wallets/pages/react/login-methods/social-providers.mdx b/content/wallets/pages/react/login-methods/social-providers.mdx index d2c574b64..738d7a7eb 100644 --- a/content/wallets/pages/react/login-methods/social-providers.mdx +++ b/content/wallets/pages/react/login-methods/social-providers.mdx @@ -139,7 +139,7 @@ type SocialAuthType = { }; ``` -You can find the full type definition in the [Account Kit source code](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/react/src/components/auth/types.ts). +You can find the full type definition in the [Account Kit source code](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/react/src/components/auth/types.ts). For more details on UI component customization, see the [UI Components](/docs/wallets/react/ui-components) documentation. diff --git a/content/wallets/pages/react/solana-wallets/get-started.mdx b/content/wallets/pages/react/solana-wallets/get-started.mdx index d1d072fce..2ecf29125 100644 --- a/content/wallets/pages/react/solana-wallets/get-started.mdx +++ b/content/wallets/pages/react/solana-wallets/get-started.mdx @@ -122,7 +122,7 @@ function MyComponent() { ## Using the `useSolanaTransaction` hook -If you want to connect to a user’s Solana Wallet and send transactions, you should use the [`useSolanaTransaction`](/docs/wallets/reference/account-kit/react/hooks/useSolanaTransaction) hook. This hook also exposes the Solana wallet address through the `signer.address` parameter. +If you want to connect to a user’s Solana Wallet and send transactions, you should use the [`useSolanaTransaction`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useSolanaTransaction.mdx) hook. This hook also exposes the Solana wallet address through the `signer.address` parameter. ## Not using React hooks? diff --git a/content/wallets/pages/react/ui-components.mdx b/content/wallets/pages/react/ui-components.mdx index 95865949b..caba16657 100644 --- a/content/wallets/pages/react/ui-components.mdx +++ b/content/wallets/pages/react/ui-components.mdx @@ -30,7 +30,7 @@ If your users have an authenticator app (TOTP) set up, the UI components will au ## Modal auth -Assuming your application has been [set up](/docs/wallets/react/quickstart), using UI components is the easiest way to authenticate users. All you have to do is leverage the [`useAuthModal`](/docs/wallets/reference/account-kit/react/hooks/useAuthModal) hook and provide users a CTA to open the modal. +Assuming your application has been [set up](/docs/wallets/react/quickstart), using UI components is the easiest way to authenticate users. All you have to do is leverage the [`useAuthModal`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useAuthModal.mdx) hook and provide users a CTA to open the modal. ```tsx twoslash import React from "react"; @@ -43,7 +43,7 @@ export default function MyPage() { } ``` -That's it! When the user clicks that button, the modal will open and they can complete authentication. Once they are authenticated, you can use the [`useAccount`](/docs/wallets/reference/account-kit/react/hooks/useAccount) hook to get the logged in user's SCA address. +That's it! When the user clicks that button, the modal will open and they can complete authentication. Once they are authenticated, you can use the [`useAccount`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useAccount.mdx) hook to get the logged in user's SCA address. **Want to display a loading state during authentication?**
For authentication with redirects in a modal, you may want to add a loading state when users are waiting for authentication to complete. @@ -80,7 +80,7 @@ export default function MyLoginPage() { } ``` -That's it! The user can now input their credentials and complete login. Once they are authenticated, you can use the [`useAccount`](/docs/wallets/reference/account-kit/react/hooks/useAccount) hook to get the logged in user's SCA address. +That's it! The user can now input their credentials and complete login. Once they are authenticated, you can use the [`useAccount`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useAccount.mdx) hook to get the logged in user's SCA address. ## Customize authentication UI @@ -96,7 +96,7 @@ When rendering the authentication component to your users, it's possible to cust * `sections` object is an array of arrays representing the various sections in descending order, each section (element in the outer array) separated by a divider in the UI * each item within a section is an `AuthTypes` objects containing configuration parameters for that authentication method. -**The following [`AuthTypes`](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/react/src/components/auth/types.ts) +**The following [`AuthTypes`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/react/src/components/auth/types.ts) can be passed into sections:** ### Email diff --git a/content/wallets/pages/recipes/hyperliquid-wallets.mdx b/content/wallets/pages/recipes/hyperliquid-wallets.mdx index 990ca2d83..837ab3667 100644 --- a/content/wallets/pages/recipes/hyperliquid-wallets.mdx +++ b/content/wallets/pages/recipes/hyperliquid-wallets.mdx @@ -74,13 +74,13 @@ The most important step is getting your API key (`NEXT_PUBLIC_ALCHEMY_API_KEY`) Hyperliquid dashboard support -Next, navigate to your `page.tsx`, and get the embedded EOA address using [useSigner()](https://www.alchemy.com/docs/wallets/reference/account-kit/react/hooks/useSigner). This new embedded EOA will be where user assets live and will sign transactions. +Next, navigate to your `page.tsx`, and get the embedded EOA address using [useSigner()](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useSigner.mdx). This new embedded EOA will be where user assets live and will sign transactions. ```tsx const signer = useSigner(); ``` -Note: to access your embedded EOA, you need to have finished authentication. To check your authentication status, use [useSignerStatus()](https://www.alchemy.com/docs/wallets/reference/account-kit/react/hooks/useSignerStatus). For example: +Note: to access your embedded EOA, you need to have finished authentication. To check your authentication status, use [useSignerStatus()](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useSignerStatus.mdx). For example: ```tsx ... @@ -230,7 +230,7 @@ export const HYPERLIQUID_CALLDATA = (() => { ### Using React -If you are working in React, you can use the [useSendUserOperation](https://www.alchemy.com/docs/wallets/reference/account-kit/react/hooks/useSendUserOperation) hook. Make sure you have set up your config from step 1. +If you are working in React, you can use the [useSendUserOperation](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useSendUserOperation.mdx) hook. Make sure you have set up your config from step 1. ```tsx import React from "react"; @@ -279,7 +279,7 @@ export default ComponentWithSendUserOperation; ### Without React -If you are not using React, you can send the same user operation directly with the [Modular Account V2 client](https://www.alchemy.com/docs/wallets/reference/account-kit/smart-contracts/functions/createModularAccountV2Client) in account-kit, passing in the chain config from step 1 and signer from step 2. +If you are not using React, you can send the same user operation directly with the [Modular Account V2 client](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/smart-contracts/src/functions/createModularAccountV2Client.mdx) in account-kit, passing in the chain config from step 1 and signer from step 2. ```ts import { createModularAccountV2Client } from "@account-kit/smart-contracts"; diff --git a/content/wallets/pages/recipes/multi-chain-setup.mdx b/content/wallets/pages/recipes/multi-chain-setup.mdx index b4e4efe1d..90fd01804 100644 --- a/content/wallets/pages/recipes/multi-chain-setup.mdx +++ b/content/wallets/pages/recipes/multi-chain-setup.mdx @@ -39,7 +39,7 @@ export const config = createConfig({ ## Change chains -Once your app is configured to use multiple chains, you can switch between them at any time using the [`useChain`](/docs/wallets/reference/account-kit/react/hooks/useChain) hook. +Once your app is configured to use multiple chains, you can switch between them at any time using the [`useChain`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useChain.mdx) hook. ```tsx twoslash import React from "react"; @@ -94,7 +94,7 @@ export const config = createConfig({ ## Change chains -Once your app is configured to use multiple chains, you can switch between them at any time using the [`setChain`](/docs/wallets/reference/account-kit/core/functions/setChain) function. +Once your app is configured to use multiple chains, you can switch between them at any time using the [`setChain`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/core/src/functions/setChain.mdx) function. Changing the chain will trigger state changes in your app (eg. the diff --git a/content/wallets/pages/recipes/smart-wallets-aave.mdx b/content/wallets/pages/recipes/smart-wallets-aave.mdx index ebb4bb75a..00ebed10a 100644 --- a/content/wallets/pages/recipes/smart-wallets-aave.mdx +++ b/content/wallets/pages/recipes/smart-wallets-aave.mdx @@ -7,7 +7,7 @@ description: >- slug: wallets/recipes/smart-wallets-aave --- -Learn how to build DeFi applications that interact with Aave using Wallet APIs. This recipe covers supplying and withdrawing assets with both the [Core library](/docs/wallets/reference/aa-sdk/core) and the [Wallet APIs](/docs/wallets/api-reference/smart-wallets/wallet-api-endpoints/wallet-request-account) for seamless user experiences. +Learn how to build DeFi applications that interact with Aave using Wallet APIs. This recipe covers supplying and withdrawing assets with both the [Core library](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/aa-sdk/core) and the [Wallet APIs](/docs/wallets/api-reference/smart-wallets/wallet-api-endpoints/wallet-request-account) for seamless user experiences. ## Prerequisites diff --git a/content/wallets/pages/resources/faqs.mdx b/content/wallets/pages/resources/faqs.mdx index 96ad3a338..b2fc028ca 100644 --- a/content/wallets/pages/resources/faqs.mdx +++ b/content/wallets/pages/resources/faqs.mdx @@ -29,7 +29,7 @@ slug: wallets/resources/faqs Your smart wallet deploys when the first `UserOperation` (UO) is sent from the account. The first UO must be sent with a non-zero `initCode`. aa-sdk handles generation of this `initCode` for you using - [`getAccountInitCode`](/docs/wallets/reference/aa-sdk/core/functions/toSmartContractAccount). + [`getAccountInitCode`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/toSmartContractAccount.mdx). ### How do I upgrade a Light Account? @@ -86,9 +86,9 @@ slug: wallets/resources/faqs This can happen when `UserOperation`s (UOs) become underpriced, frequently due to fee market movement between when gas and fees are estimations and when the UO is actually submitted. - You may experience this when calling the [`waitForUserOperationTransaction`](/docs/wallets/reference/aa-sdk/core/variables/waitForUserOperationTransaction) method. It may throw an error if it does not find the UO in a mined Transaction within its retry limits. + You may experience this when calling the [`waitForUserOperationTransaction`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/variables/waitForUserOperationTransaction.mdx) method. It may throw an error if it does not find the UO in a mined Transaction within its retry limits. - You can mitigate this by defining a more flexible retry period when constructing a [`Client`](/docs/wallets/reference/aa-sdk/core/functions/createSmartAccountClient) (i.e. `txMaxRetries`, `txRetryIntervalMs`, `txRetryMultiplier` in `opts`). If your UO continues to be delayed beyond a limit you are willing to wait, you can resubmit it using [`dropAndReplaceUserOperation`](/docs/wallets/reference/aa-sdk/core/functions/dropAndReplaceUserOperation). + You can mitigate this by defining a more flexible retry period when constructing a [`Client`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/createSmartAccountClient.mdx) (i.e. `txMaxRetries`, `txRetryIntervalMs`, `txRetryMultiplier` in `opts`). If your UO continues to be delayed beyond a limit you are willing to wait, you can resubmit it using [`dropAndReplaceUserOperation`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/dropAndReplaceUserOperation.mdx). ### Are `UserOperation`s protected from MEV bots? @@ -192,7 +192,7 @@ slug: wallets/resources/faqs Use this flow when you need to verify user sessions created by SCAs via Wallet APIs. - 1. The frontend generates a stamped request using [signer.inner.stampWhoAmI](https://www.alchemy.com/docs/wallets/reference/account-kit/signer/classes/BaseSignerClient#stampwhoami). + 1. The frontend generates a stamped request using [signer.inner.stampWhoAmI](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/signer/src/classes/BaseSignerClient.mdx#stampwhoami). 2. It sends the stamp to your backend. 3. The backend calls the [/signer/v1/whoami](https://www.alchemy.com/docs/node/smart-wallets/signer-api-endpoints/auth-user) endpoint to verify the identity. 4. If you need to make subsequent requests, you can avoid calling the whoami endpoint on every request. After verifying the `whoami`, the backend can issue its own session token (e.g. an HTTP-only cookie or access token). If the token is present, you can safely skip the `whoami` check. @@ -253,11 +253,11 @@ slug: wallets/resources/faqs ### `waitForUserOperationTransaction` timeout - [`waitForUserOperationTransaction`](/docs/wallets/reference/aa-sdk/core/variables/waitForUserOperationTransaction) may throw this error if it does not find the mined User Operation within its retry limits. + [`waitForUserOperationTransaction`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/variables/waitForUserOperationTransaction.mdx) may throw this error if it does not find the mined User Operation within its retry limits. - You can mitigate this by defining a more flexible retry period when constructing a [`Client`](/docs/wallets/reference/aa-sdk/core/functions/createSmartAccountClient) (i.e. `txMaxRetries`, `txRetryIntervalMs`, `txRetryMultiplier` in `opts`). + You can mitigate this by defining a more flexible retry period when constructing a [`Client`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/createSmartAccountClient.mdx) (i.e. `txMaxRetries`, `txRetryIntervalMs`, `txRetryMultiplier` in `opts`). - If your `UserOperation` continues to be delayed beyond a limit you are willing to wait, you can resubmit the user operation using [`dropAndReplaceUserOperation`](/docs/wallets/reference/aa-sdk/core/functions/dropAndReplaceUserOperation#usage). + If your `UserOperation` continues to be delayed beyond a limit you are willing to wait, you can resubmit the user operation using [`dropAndReplaceUserOperation`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/dropAndReplaceUserOperation.mdx#usage). ### `Although one or more Error Occurred [execution reverted] Contract Execution Completed` on etherscan @@ -358,7 +358,7 @@ createConfig({ }) ``` -[Reference: createConfig](https://www.alchemy.com/docs/wallets/reference/account-kit/react/functions/createConfig) +[Reference: createConfig](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/createConfig.mdx) *** diff --git a/content/wallets/pages/resources/types.mdx b/content/wallets/pages/resources/types.mdx index 6591d199d..687cdbfb0 100644 --- a/content/wallets/pages/resources/types.mdx +++ b/content/wallets/pages/resources/types.mdx @@ -116,7 +116,7 @@ export type BundlerActions = { ## `BundlerClient` -`BundlerClient` is a custom `viem` [`Client`](https://viem.sh/docs/clients/custom) that extends viem's [`PublicClient`](https://viem.sh/docs/clients/public) with bundler-specific actions for [EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) operations and [EIP-6900](https://eips.ethereum.org/EIPS/eip-6900) standards. The actions are defined in [`@aa-sdk/core`](/docs/wallets/reference/aa-sdk/core). It's account agnostic and only exposes methods for interacting directly with Bundler RPC and ETH RPC methods. +`BundlerClient` is a custom `viem` [`Client`](https://viem.sh/docs/clients/custom) that extends viem's [`PublicClient`](https://viem.sh/docs/clients/public) with bundler-specific actions for [EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) operations and [EIP-6900](https://eips.ethereum.org/EIPS/eip-6900) standards. The actions are defined in [`@aa-sdk/core`](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/aa-sdk/core). It's account agnostic and only exposes methods for interacting directly with Bundler RPC and ETH RPC methods. `BundlerClient` also supports [`Public Actions`](https://viem.sh/docs/actions/public/introduction) for client applications to connect, query, and interact with the blockchain (i.e., sending transactions, smart contract executions, data retrieval, etc.). Additionally, it is EIP-1193 compliant, so it can be swapped out in place of other web3 providers (eg. `window.ethereum`). In the vast majority of cases, you will not use this client directly. Use the [`SmartAccountClient`](/docs/wallets/concepts/smart-account-client) instead, which wraps the Bundler Client and provides the same actions plus account-specific functionality. @@ -407,11 +407,11 @@ export interface SmartAccountSigner { Within Wallet APIs, implementations for Light Account and Modular Account are exported from `@account-kit/smart-contracts`. These implementations handle the logic for generating the deployment data, encoding single and batch UO execution, and signing of messages, typed data, and UOs. -Wallets are rarely used on their own, and are typically passed in to [Smart Account Client](/docs/wallets/reference/aa-sdk/core/type-aliases/SmartAccountClient) implementations. +Wallets are rarely used on their own, and are typically passed in to [Smart Account Client](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/type-aliases/SmartAccountClient.mdx) implementations. When using either the [React](/docs/wallets/react/quickstart) or [Core](/docs/wallets/core/overview) libraries, the connection of an account and a client is handled for you. -It's also possible to use a custom account when using the [Infra](/docs/wallets/reference/account-kit/infra) library. -Within `@aa-sdk/core`, a method [`toSmartContractAccount`](/docs/wallets/reference/aa-sdk/core/functions/toSmartContractAccount) is provided so you can create an instance of your smart wallet. +It's also possible to use a custom account when using the [Infra](https://github.com/alchemyplatform/aa-sdk/tree/v4.x.x/docs/pages/reference/account-kit/infra) library. +Within `@aa-sdk/core`, a method [`toSmartContractAccount`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/toSmartContractAccount.mdx) is provided so you can create an instance of your smart wallet. @@ -452,7 +452,7 @@ State overrides allow you to customize the network state for the purpose of the ## `ToSmartContractAccountParams` -This type defines the parameters to the `SmartContractAccount` instantiation action, [`toSmartContractAccount`](/docs/wallets/reference/aa-sdk/core/functions/toSmartContractAccount). You can configure this parameter to specify the [`Transport`](https://viem.sh/docs/clients/intro#transports), [`Chain`](https://viem.sh/docs/glossary/types#chain), [`EntryPointDef`](#entrypointdef), and other base functionalities of the smart wallet that you are creating. +This type defines the parameters to the `SmartContractAccount` instantiation action, [`toSmartContractAccount`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/aa-sdk/core/src/functions/toSmartContractAccount.mdx). You can configure this parameter to specify the [`Transport`](https://viem.sh/docs/clients/intro#transports), [`Chain`](https://viem.sh/docs/glossary/types#chain), [`EntryPointDef`](#entrypointdef), and other base functionalities of the smart wallet that you are creating. @@ -485,7 +485,7 @@ export type ToSmartContractAccountParams< ## `User` -`User` is a type that defines the model for the details of a user's embedded account. It includes the user's `email`, `orgId`, `userId`, `address` (the EOA address corresponding to the user credentials), and `credentialId`. You can use the [`useUser`](/docs/wallets/reference/account-kit/react/hooks/useUser) React hook to look up a user. +`User` is a type that defines the model for the details of a user's embedded account. It includes the user's `email`, `orgId`, `userId`, `address` (the EOA address corresponding to the user credentials), and `credentialId`. You can use the [`useUser`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useUser.mdx) React hook to look up a user. diff --git a/content/wallets/pages/signer/export-private-key.mdx b/content/wallets/pages/signer/export-private-key.mdx index 0709f600b..a3c44b2ce 100644 --- a/content/wallets/pages/signer/export-private-key.mdx +++ b/content/wallets/pages/signer/export-private-key.mdx @@ -7,7 +7,7 @@ slug: wallets/signer/export-private-key You can export a user's private key, giving them the right to exit at any time. Allowing your users to export their private key is a best practice, as it gives them full control over their account. The private key export method does not rely on external infrastructure, so a user can always export their private key. -## Using [useExportAccount](/docs/wallets/reference/account-kit/react/hooks/useExportAccount) +## Using [useExportAccount](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/react/src/functions/useExportAccount.mdx) A hook to export the private key for an account. It returns the mutation functions to kick off the export process, as well as a component to render the account recovery details in an iframe. diff --git a/content/wallets/pages/signer/user-sessions.mdx b/content/wallets/pages/signer/user-sessions.mdx index 608001ebe..9f22e70a5 100644 --- a/content/wallets/pages/signer/user-sessions.mdx +++ b/content/wallets/pages/signer/user-sessions.mdx @@ -6,7 +6,7 @@ slug: wallets/signer/user-sessions By default, `AlchemyWebSigner` user sessions are cached in `localStorage` for 15 minutes. -You can customize session length by passing a [`sessionConfig`](/docs/wallets/reference/account-kit/signer/classes/AlchemyWebSigner) to your `AlchemyWebSigner` constructor. +You can customize session length by passing a [`sessionConfig`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/signer/src/classes/AlchemyWebSigner.mdx) to your `AlchemyWebSigner` constructor. You can check if the user has an active session with the following command: diff --git a/content/wallets/pages/smart-wallets/how-to-stamp-requests.mdx b/content/wallets/pages/smart-wallets/how-to-stamp-requests.mdx index c805e758f..734a1970a 100644 --- a/content/wallets/pages/smart-wallets/how-to-stamp-requests.mdx +++ b/content/wallets/pages/smart-wallets/how-to-stamp-requests.mdx @@ -32,7 +32,7 @@ For any endpoint the requires a `stampedRequest` body for the verification logic 2. Generate a private key bundle - 1. Exchange the `targetPublicKey` for an encrypted `bundle` by calling [create wallet](/docs/wallets/reference/account-kit/core/functions/createAccount) (e.g., OAuth, email login) + 1. Exchange the `targetPublicKey` for an encrypted `bundle` by calling [create wallet](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/docs/pages/reference/account-kit/core/src/functions/createAccount.mdx) (e.g., OAuth, email login) 3. Decrypt the bundle using Hybrid Public Key Encryption (HPKE). @@ -88,8 +88,8 @@ If you're building in React or Vanilla JS, use the [SDK](/docs/wallets) which ha * [JS SDK React Native stamper](https://github.com/alchemyplatform/aa-sdk/blob/9ad59f2d6673bc6f587e6a57343b1486c92f382f/account-kit/rn-signer/src/NativeTEKStamper.ts#L9) - * [Generating keys, stamping requests on iOS](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/rn-signer/ios/implementation/NativeTEKStamperImpl.swift) - * [Generating keys, stamping requests on Android](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/rn-signer/android/src/main/java/com/accountkit/reactnativesigner/NativeTEKStamperModule.kt) + * [Generating keys, stamping requests on iOS](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/rn-signer/ios/implementation/NativeTEKStamperImpl.swift) + * [Generating keys, stamping requests on Android](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/rn-signer/android/src/main/java/com/accountkit/reactnativesigner/NativeTEKStamperModule.kt) * [More examples of stamping via Turnkey](https://docs.turnkey.com/developer-reference/api-overview/stamps#stampers) diff --git a/content/wallets/shared/react-native/signer-setup.mdx b/content/wallets/shared/react-native/signer-setup.mdx index 03e414418..17a65802a 100644 --- a/content/wallets/shared/react-native/signer-setup.mdx +++ b/content/wallets/shared/react-native/signer-setup.mdx @@ -46,7 +46,7 @@ * For testing, set up a server on [http://localhost:3000](http://localhost:3000/) or any other server - you control that redirects an incoming request to your app scheme. A sample implementation can be found in the [`example`](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/rn-signer/example/redirect-server/index.ts) + you control that redirects an incoming request to your app scheme. A sample implementation can be found in the [`example`](https://github.com/alchemyplatform/aa-sdk/blob/v4.x.x/account-kit/rn-signer/example/redirect-server/index.ts) folder of the `React Native Signer` repo. * The HTTP or HTTPS URL you set up