diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/_category_.json b/docs/about/integrate-with-astar/_category_.json
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/_category_.json
rename to docs/about/integrate-with-astar/_category_.json
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/add-to-portal.md b/docs/about/integrate-with-astar/add-to-portal.md
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/add-to-portal.md
rename to docs/about/integrate-with-astar/add-to-portal.md
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/asset-registration.md b/docs/about/integrate-with-astar/asset-registration.md
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/asset-registration.md
rename to docs/about/integrate-with-astar/asset-registration.md
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/hrmp.md b/docs/about/integrate-with-astar/hrmp.md
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/hrmp.md
rename to docs/about/integrate-with-astar/hrmp.md
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/multilocation.md b/docs/about/integrate-with-astar/multilocation.md
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/multilocation.md
rename to docs/about/integrate-with-astar/multilocation.md
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/tools.md b/docs/about/integrate-with-astar/tools.md
similarity index 100%
rename from docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/integration/tools.md
rename to docs/about/integrate-with-astar/tools.md
diff --git a/docs/about/products/dapp-staking/for-devs/requirements.md b/docs/about/products/dapp-staking/for-devs/requirements.md
index 37a30bf..ea6a442 100644
--- a/docs/about/products/dapp-staking/for-devs/requirements.md
+++ b/docs/about/products/dapp-staking/for-devs/requirements.md
@@ -18,8 +18,8 @@ Astar is aiming to become a DAO in a couple of years. While moving towards becom
### Astar Network
- Your dApp is **launched and live on Astar Network**
-- Does your project contribute to Astar TVL? Make sure you are listed on [DefilLama] (/docs/build/integrations/dapp-listing/defillama). **LINK TO UPDATE**
-- List your project on [DappRadar] (/docs/build/integrations/dapp-listing/dappradar). **LINK TO UPDATE**
+- Does your project contribute to Astar TVL? Make sure you are listed on [DefilLama] (/docs/build/build-on-layer-1/integrations/dapp-listing/defillama). **LINK TO UPDATE**
+- List your project on [DappRadar] (/docs/build/build-on-layer-1/integrations/dapp-listing/dappradar). **LINK TO UPDATE**
- Your dApp has #astar-network, #dAppStaking tags in your GitHub repo.
- You need to create a PR to the Ecosystem Page. As our website is open-source, you can contribute directly to it - just create a PR on your own! [Here](https://github.com/AstarNetwork/astarwebsite_v2/blob/349db39d724b57f58fbee84b3fa500bf0d29bee6/components/Header.vue)
- If you wish to have your project listed on Astar website [ecosystem page](https://astar.network/community/ecosystem), fill in this [FORM](https://forms.gle/xsGUnCt3fm4isWWF7).
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/_category_.json b/docs/build/build-on-layer-1/integrations/account-abstraction/_category_.json
new file mode 100644
index 0000000..ea891e3
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Account Abstraction",
+ "position": 1
+}
\ No newline at end of file
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/banana/_category_.json b/docs/build/build-on-layer-1/integrations/account-abstraction/banana/_category_.json
new file mode 100644
index 0000000..2cb26bf
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/banana/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Banana Wallet SDK",
+ "position": 1
+}
\ No newline at end of file
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/banana/index.md b/docs/build/build-on-layer-1/integrations/account-abstraction/banana/index.md
new file mode 100644
index 0000000..125a039
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/banana/index.md
@@ -0,0 +1,341 @@
+---
+sidebar_position: 3
+---
+# Banana SDK
+
+## Introduction
+In this tutorial we will show how you can integrate Banana Wallet to your JavaScript or TypeScript-based frontend. We will demonstrate how to create a new wallet or connect an existing Banana Wallet on any dApp on Astar Network.
+
+
+## Prerequisites
+
+ - Basic JavaScript/Typescript knowledge.
+ - Enthusiasm to build an amazing dApp on Astar.
+
+## Getting started
+
+### Step 1: Create a new repo with create-react-app
+Create a new react project with react with name `banana-sdk-demo` and now let's move into to the it.
+```
+npx create-react-app banana-sdk-demo
+cd banana-sdk-demo
+```
+
+### Step 2: Installing banana sdk package
+
+Install @rize-labs/banana-wallet-sdk package with
+
+```
+npm install @rize-labs/banana-wallet-sdk
+or
+yarn add @rize-labs/banana-wallet-sdk
+```
+
+### Step 3: Smart Contract deployment
+
+For this demo we will be using a very basic smart contract with only two functionalities:
+
+- Make a transaction to the blockchain by making a state variable change its value.
+- Fetch value of state variable.
+
+Code for smart contract
+
+```
+pragma solidity ^0.8.12;
+
+contract Sample {
+
+ uint public stakedAmount = 0;
+
+ function stake() external payable {
+ stakedAmount = stakedAmount + msg.value;
+ }
+
+ function returnStake() external {
+ payable(0x48701dF467Ba0efC8D8f34B2686Dc3b0A0b1cab5).transfer(stakedAmount);
+ }
+}
+```
+
+You can deploy the contract on Shibuya Testnet using [remix](https://remix.ethereum.org/) or something of your own choice.
+
+For this demo we had already deployed it here: `0xCC497f137C3A5036C043EBd62c36F1b8C8A636C0`
+
+### Step 4: Building the front end
+
+We will have a simple front end with some buttons to interact with the blockchain. Although Banana SDK provides you with a smart contract wallet you don't need worry about its deployment. Everything is handled by us in the SDK so you can concentrate on building your dApp.
+
+![](https://hackmd.io/_uploads/ryPnrYEPh.png)
+
+For more information about building the frontend please refer to this [guide](https://banana-wallet-docs.rizelabs.io/integration/sdk-integration-tutorial/banana-less-than-greater-than-shibuya#building-the-frontend).
+
+### Step 5: Imports
+
+```
+import "./App.css";
+import { Banana, Chains } from '@rize-labs/banana-wallet-sdk';
+import { useEffect, useState } from "react";
+import { ethers } from "ethers";
+import { SampleAbi } from "./SampleAbi";
+```
+
+Download app.css and SampleAbi.js from here [App.css](https://github.com/Banana-Wallet/banana-tutorial/blob/feat/chaido-tutorial/src/App.css) and [SampleAbi.js](https://github.com/Banana-Wallet/banana-tutorial/blob/feat/chaido-tutorial/src/SampleAbi.js)
+
+Initializing some states for demo
+
+```
+const [walletAddress, setWalletAddress] = useState("");
+const [bananaSdkInstance, setBananSdkInstance] = useState(null);
+const [isLoading, setIsLoading] = useState(false);
+const [walletInstance, setWalletInstance] = useState(null);
+const [output, setOutput] = useState("Welcome to Banana Demo");
+const SampleContractAddress = "0xCB8a3Ca479aa171aE895A5D2215A9115D261A566";
+```
+
+### Step 6: Initializing Banana SDK instance and creating methods
+
+```
+// calling it in useEffect
+
+useEffect(() => {
+ getBananaInstance();
+}, []);
+
+ const getBananaInstance = () => {
+ const bananaInstance = new Banana(Chains.shibuyaTestnet);
+ setBananSdkInstance(bananaInstance);
+ };
+```
+
+For simplicity in this example we are creating an SDK instance for Shibuya testnet.
+
+Creating Wallet
+
+```
+const createWallet = async () => {
+ // starts loading
+ setIsLoading(true);
+
+ // creating wallet
+ const wallet = await bananaSdkInstance.createWallet();
+ setWalletInstance(wallet);
+
+ // getting address for wallet created
+ const address = await wallet.getAddress();
+ setWalletAddress(address);
+ setOutput("Wallet Address: " + address);
+ setIsLoading(false);
+ };
+
+```
+
+Developers need to call the `createWallet` method which will inherently ask the user for a wallet name. Once username is provided, the wallet is initialized for the user, and the method returns an instance of the wallet.
+
+Connecting wallet
+
+```
+const connectWallet = async () => {
+
+ // checking does wallet name is cached in cookie
+ const walletName = bananaSdkInstance.getWalletName();
+
+ // if cached we will use it
+ if (walletName) {
+ setIsLoading(true);
+
+ // connect wallet with cached wallet name
+ const wallet = await bananaSdkInstance.connectWallet(walletName);
+ setWalletInstance(wallet);
+
+ // extracting wallet address for display purpose
+ const address = await wallet.getAddress();
+ setWalletAddress(address);
+ setOutput("Wallet Address: " + address);
+ setIsLoading(false);
+ } else {
+ setIsLoading(false);
+ alert("You don't have wallet created!");
+ }
+ };
+
+```
+When the user wallet is created the wallet's public data is cached in the user's cookie. Once the `getWalletName` function fetches `walletName` from the cookie, we pass `walletName` into `connectWallet` which initializes and configures some wallet parameters internally, and returns a wallet instance.
+
+Get ChainId
+
+```
+ const getChainId = async () => {
+ setIsLoading(true);
+ const signer = walletInstance.getSigner();
+ const chainid = await signer.getChainId();
+ setOutput(JSON.stringify(chainid));
+ setIsLoading(false);
+ };
+```
+Getting `chainId` is pretty straight forward. Developers should extract the *signer* from the wallet and use `getChainId` to obtain the `chainId` of the current network.
+
+Get Network
+
+```
+ const getNetwork = async () => {
+ setIsLoading(true);
+ const provider = walletInstance.getProvider();
+ const network = await provider.getNetwork();
+ setOutput(JSON.stringify(network));
+ setIsLoading(false);
+ };
+```
+
+Extracting the network is as easy as it looks. Developers should extract the *provider* from the wallet and use the `getNetwork` method to obtain the chain info.
+
+Make transaction
+
+```
+ const makeTransaction = async () => {
+ setIsLoading(true);
+
+ // getting signer
+ const signer = walletInstance.getSigner();
+ const amount = "0.00001";
+ const tx = {
+ gasLimit: "0x55555",
+ to: SampleContractAddress,
+ value: ethers.utils.parseEther(amount),
+ data: new ethers.utils.Interface(SampleAbi).encodeFunctionData(
+ "stake",
+ []
+ ),
+ };
+
+ try {
+ // sending txn object via signer
+ const txn = signer.sendTransaction(tx);
+ setOutput(JSON.stringify(txn));
+ } catch (err) {
+ console.log(err);
+ }
+ setIsLoading(false);
+ };
+```
+
+To initiate a transaction you will create a transaction object. Extract *signer* from the wallet instance and initiate a transaction by passing the *transaction object* to the *send transaction* method.
+PS: Make sure your wallet is funded before you initiate transactions.
+
+Signing message
+
+```
+ const signMessage = async () => {
+ setIsLoading(true);
+ const sampleMsg = "Hello World";
+ const signer = walletInstance.getSigner();
+ const signMessageResponse = await signer.signBananaMessage(sampleMsg);
+ setOutput(JSON.stringify(signMessageResponse));
+ setIsLoading(false);
+ };
+```
+
+Signing a message is as simple as it looks. Pass a message that needs to be signed, and the method will return an object \{ messageSigned: "", signature: "" \}
+
+messageSigned: message that was signed.
+
+signature: signature for the signed message.
+
+### Step 7: Building the frontend
+
+JSX code for frontend
+
+```
+
+
Banana SDK Demo
+ {walletAddress &&
Wallet Address: {walletAddress}
}
+
+
+
+
+
+
+
Output Panel
+
+
{isLoading ? "Loading.." : output}
+
+
+```
+
+## Troubleshooting
+
+If you are facing a webpack 5 polyfill issue please try using `react-app-rewired`.
+
+```
+npm install react-app-rewired
+
+npm install stream-browserify constants-browserify crypto-browserify os-browserify path-browserify process stream-browserify buffer ethers@^5.7.2
+```
+
+create a file name `config-overrides.js` using the content below.
+```
+const { ProvidePlugin }= require("webpack")
+
+module.exports = {
+ webpack: function (config, env) {
+ config.module.rules = config.module.rules.map(rule => {
+ if (rule.oneOf instanceof Array) {
+ rule.oneOf[rule.oneOf.length - 1].exclude = [/\.(js|mjs|jsx|cjs|ts|tsx)$/, /\.html$/, /\.json$/];
+ }
+ return rule;
+ });
+ config.resolve.fallback = {
+ ...config.resolve.fallback,
+ stream: require.resolve("stream-browserify"),
+ buffer: require.resolve("buffer"),
+ crypto: require.resolve("crypto-browserify"),
+ process: require.resolve("process"),
+ os: require.resolve("os-browserify"),
+ path: require.resolve("path-browserify"),
+ constants: require.resolve("constants-browserify"),
+ fs: false
+ }
+ config.resolve.extensions = [...config.resolve.extensions, ".ts", ".js"]
+ config.ignoreWarnings = [/Failed to parse source map/];
+ config.plugins = [
+ ...config.plugins,
+ new ProvidePlugin({
+ Buffer: ["buffer", "Buffer"],
+ }),
+ new ProvidePlugin({
+ process: ["process"]
+ }),
+ ]
+ return config;
+ },
+}
+```
+Change package.json to start using `react-app-rewired` instead of `react-scripts`.
+
+```
+react-scripts start -> react-app-rewired start
+react-scripts build -> react-app-rewired build
+react-scripts test -> react-app-rewired test
+```
+
+If you are still unable to resolve the issue please post your query to Banana Discord [here](https://discord.gg/3fJajWBT3N)
+
+
+## Learn more
+
+To learn more about Banana Wallet head over to [banana docs](https://banana-wallet-docs.rizelabs.io/)
+
+Full tutorial code is available [here](https://github.com/Banana-Wallet/banana-tutorial/tree/feat/shibuya-tutorial)
+
+If your dApp already uses Rainbowkit then you can use Banana Wallet directly on Shibuya testnet. Please refer [here](https://docs.bananahq.io/integration/wallet-connectors/using-rainbowkit) for more information.
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/_category_.json b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/_category_.json
new file mode 100644
index 0000000..7cd3826
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Biconomy Account Abstraction SDK",
+ "position": 2
+}
\ No newline at end of file
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/biconomy-sdk.md b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/biconomy-sdk.md
new file mode 100644
index 0000000..9adc0ad
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/biconomy-sdk.md
@@ -0,0 +1,268 @@
+---
+sidebar_label: Quickstart
+sidebar_position: 1
+---
+
+# Quickstart: Smart Account Native Transfer
+
+In this guide, we will walk through creating a basic Node.js script using **TypeScript** with an implementation of the **Smart Account Package** from the Biconomy SDK. You will learn how to create a smart account and perform user operations by sending a native transfer of tokens.
+
+:::info
+Please note that this tutorial assumes you have Node JS installed on your computer and have some working knowledge of Node.
+:::
+
+## Environment set up
+
+We will clone a preconfigured Node.js project with TypeScript support to get started. Follow these steps to clone the repository to your local machine using your preferred command line interface:
+
+1. Open your command line interface, Terminal, Command Prompt, or PowerShell.
+2. Navigate to the desired directory where you would like to clone the repository.
+3. Execute the following command to clone the repository from the provided [GitHub link](https://github.com/bcnmy/quickstart)
+
+```bash
+git clone git@github.com:bcnmy/quickstart.git
+```
+
+Note that this is the ssh example, use http or GithubCli options if you prefer.
+
+```bash
+git clone https://github.com/bcnmy/quickstart.git
+```
+
+Once you have the repository on your local machine - start by installing all dependencies using your preferred package manager. In this tutorial we will use yarn.
+
+```bash
+yarn install
+yarn dev
+```
+After running these two commands you should see the printed statement “Hello World!” in your terminal. Any changes made to the `index.ts` file in the src directory should now automatically run in your terminal upon save.
+
+All packages you need for this guide are all configured and installed for you, check out the `package.json` file if you want to explore the dependencies.
+
+
+ Click to learn more about the packages
+
+- The account package will help you with creating smart contract accounts and an interface with them to create transactions.
+- The bundler package helps you with interacting with our bundler or alternatively another bundler of your choice.
+- The paymaster package works similarly to the bundler package in that you can use our paymaster or any other one of your choice.
+- The core types package will give us Enums for the proper ChainId we may want to use.
+- The modules package gives us access to the different modules we publish for the biconomy sdk.
+- The common package is needed by our accounts package as another dependency.
+- Finally the ethers package at version 5.7.2 will help us with giving our accounts an owner which will be our own EOA.
+
+
+
+Let’s first set up a .env file in the root of our project, this will need a Private Key of any Externally Owned Account (EOA) you would like to serve as the owner of the smart account we create. This is a private key you can get from wallets like MetaMask, TrustWallet, Coinbase Wallet etc. All of these wallets will have tutorials on how to export the Private key.
+
+```bash
+PRIVATE_KEY = "enter some private key"
+```
+
+Let’s give our script the ability to access this environment variable. Delete the console log inside of `src/index.ts` and replace it with the code below. All of our work for the remainder of the tutorial will be in this file.
+
+```typescript
+import { config } from "dotenv"
+
+config()
+```
+Now our code is configured to access the environment variable as needed.
+
+## Initialization
+
+Let’s import our bundler package, and providers from the ethers package:
+
+```typescript
+import { IBundler, Bundler } from '@biconomy/bundler'
+import { DEFAULT_ENTRYPOINT_ADDRESS } from "@biconomy/account"
+import { ethers } from 'ethers'
+import { ChainId } from "@biconomy/core-types"
+```
+
+IBundler is the typing for the Bundler class that we will create a new instance of.
+
+
+### **Initial Configuration**
+
+```typescript
+const bundler: IBundler = new Bundler({
+ bundlerUrl: 'https://bundler.biconomy.io/api/v2/80001/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44',
+ chainId: ChainId.POLYGON_MUMBAI,
+ entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
+ })
+```
+
+- Now we create an instance of our bundler with the following:
+ - a bundler url which you can retrieve from the Biconomy Dashboard
+ - chain ID, in this case we’re using Polygon Mumbai testnet
+ - and default entry point address imported from the account package
+
+
+```typescript
+import { BiconomySmartAccountV2, DEFAULT_ENTRYPOINT_ADDRESS } from "@biconomy/account"
+```
+
+Update your import from the account package to also include BiconomySmartAccountV2 which is the class we will be using to create an instance of our smart account.
+
+```typescript
+const provider = new ethers.providers.JsonRpcProvider("https://rpc.ankr.com/polygon_mumbai")
+const wallet = new ethers.Wallet(process.env.PRIVATE_KEY || "", provider);
+```
+
+- We create a provider using a public RPC provider endpoint from Astar Foundation, feel free to use any service you wish.
+- Next we create an instance of the wallet associated to our Private key.
+
+One more thing we need to include before we move on is the module for our Smart account. You can learn more about modules here. In this instance we will create this smart account using the ECDSA module.
+
+First we import our Module:
+
+```typescript
+import { ECDSAOwnershipValidationModule, DEFAULT_ECDSA_OWNERSHIP_MODULE } from "@biconomy/modules";
+```
+Now let's initialize the module and pass it to our account creation config:
+
+```typescript
+async function createAccount() {
+
+ const module = await ECDSAOwnershipValidationModule.create({
+ signer: wallet,
+ moduleAddress: DEFAULT_ECDSA_OWNERSHIP_MODULE
+ })
+
+ let biconomySmartAccount = await BiconomySmartAccountV2.create({
+ signer: wallet,
+ chainId: ChainId.POLYGON_MUMBAI,
+ bundler: bundler,
+ entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
+ defaultValidationModule: module,
+ activeValidationModule: module
+})
+ console.log("address: ", await biconomySmartAccount.getAccountAddress())
+ return biconomySmartAccount;
+}
+
+```
+
+We create a new instance of the account using the BiconomySmartAccount class and passing it the configuration.
+
+We then await the initialization of the account and log out two values to out terminal: the owner of the account and the smart account address. The owner should be the EOA that you got your private key from and the smart account address will be a new address referring to the address of this wallet.
+:::info
+Smart accounts are counterfactual in nature. We know their address before they are even deployed. In this instance we won’t immediately deploy it, it will automatically be deployed on the first transaction it initiates and the gas needed for deployment will be added to that first transaction.
+:::
+
+:::caution
+Before continuing, now that we have our smart account address we need to fund it. Since we are using the Polygon Mumbai network head over to the Polygon Faucet and paste in your smart account address and get some test tokens! If you skip this step you might run into the [AA21 didn't pay prefund error](https://docs.biconomy.io/troubleshooting/commonerrors)!
+:::
+Once you have tokens available it is time to start constructing our first userOps for a native transfer.
+
+
+## Execute your first userOp
+
+```typescript
+async function createTransaction() {
+ console.log("creating account")
+
+ const smartAccount = await createAccount();
+
+ const transaction = {
+ to: '0x322Af0da66D00be980C7aa006377FCaaEee3BDFD',
+ data: '0x',
+ value: ethers.utils.parseEther('0.1'),
+ }
+
+ const userOp = await smartAccount.buildUserOp([transaction])
+ userOp.paymasterAndData = "0x"
+
+ const userOpResponse = await smartAccount.sendUserOp(userOp)
+
+ const transactionDetail = await userOpResponse.wait()
+
+ console.log("transaction detail below")
+ console.log(transactionDetail)
+}
+
+createTransaction()
+```
+
+Let’s move the call to create account into the create transaction function and have it assigned to the value smartAccount.
+
+Now we need to construct our transaction which will take the following values:
+
+- `to`: the address this interaction is directed towards, (in this case here is an address I own, feel free to change this to your own or send me more test tokens)
+- `data`: we are defaulting to ‘0x’ as we do not need to send any specific data for this transaction to work since it is a native transfer
+- `value`: we indicate the amount we would like to transfer here and use the `parseEther` utility function to make sure our value is formatted the way we need it to be
+
+Next up is building the userOp, feel free to add an additional log here if you would like to see how the partial userOp looks in this case. We’re also going to add “0x” for the paymasterAndData value as we just want this to be a regular transaction where the gas is paid for by the end user.
+
+Finally we send the userOp and save the value to a variable named userOpResponse and get the transactionDetail after calling `userOpResponse.wait()`. This function can optionally take a number to specify the amount of network confirmations you would like before returning a value. For example, if you passed `userOpResponse.wait(5)` this would wait for 5 confirmations on the network before giving you the necessary value.
+
+Check out the long transaction details available now in your console! You just created and executed your first userOps using the Biconomy SDK!
+
+
+ Click to view final code
+
+```typescript
+import { config } from "dotenv"
+import { IBundler, Bundler } from '@biconomy/bundler'
+import { ChainId } from "@biconomy/core-types"
+import { BiconomySmartAccountV2, DEFAULT_ENTRYPOINT_ADDRESS } from "@biconomy/account"
+import { ECDSAOwnershipValidationModule, DEFAULT_ECDSA_OWNERSHIP_MODULE } from "@biconomy/modules";
+import { ethers } from 'ethers';
+
+config()
+
+const provider = new ethers.providers.JsonRpcProvider("https://rpc.ankr.com/polygon_mumbai")
+const wallet = new ethers.Wallet(process.env.PRIVATE_KEY || "", provider);
+
+const bundler: IBundler = new Bundler({
+ bundlerUrl: 'https://bundler.biconomy.io/api/v2/80001/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44',
+ chainId: ChainId.POLYGON_MUMBAI,
+ entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
+})
+
+const module = await ECDSAOwnershipValidationModule.create({
+ signer: wallet,
+ moduleAddress: DEFAULT_ECDSA_OWNERSHIP_MODULE
+})
+
+ async function createAccount() {
+ let biconomyAccount = await BiconomySmartAccountV2.create({
+ signer: wallet,
+ chainId: ChainId.POLYGON_MUMBAI,
+ bundler: bundler,
+ entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
+ defaultValidationModule: module,
+ activeValidationModule: module
+ })
+ console.log("address", biconomyAccount.accountAddress)
+ return biconomyAccount
+ }
+
+ async function createTransaction() {
+ const smartAccount = await createAccount();
+ try {
+ const transaction = {
+ to: '0x322Af0da66D00be980C7aa006377FCaaEee3BDFD',
+ data: '0x',
+ value: ethers.utils.parseEther('0.1'),
+ }
+
+ const userOp = await smartAccount.buildUserOp([transaction])
+ userOp.paymasterAndData = "0x"
+
+ const userOpResponse = await smartAccount.sendUserOp(userOp)
+
+ const transactionDetail = await userOpResponse.wait()
+
+ console.log("transaction detail below")
+ console.log(`https://mumbai.polygonscan.com/tx/${transactionDetail.receipt.transactionHash}`)
+ } catch (error) {
+ console.log(error)
+ }
+ }
+
+ createTransaction()
+```
+
+
+
+Now that you have completed our quickstart take a look at exploring further usecases in our Quick Explore guide or our Node JS guides!
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/add_contract.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/add_contract.png
new file mode 100644
index 0000000..adb1f34
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/add_contract.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/changes.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/changes.png
new file mode 100644
index 0000000..ec09718
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/changes.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/new_contract.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/new_contract.png
new file mode 100644
index 0000000..3cb663a
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/contracts/new_contract.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/fiat-1.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/fiat-1.png
new file mode 100644
index 0000000..1e291c4
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/fiat-1.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/keys/paymaster_keys.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/keys/paymaster_keys.png
new file mode 100644
index 0000000..8f85fb6
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/keys/paymaster_keys.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/censored.jpeg b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/censored.jpeg
new file mode 100644
index 0000000..0e15a5c
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/censored.jpeg differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/erc20gas.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/erc20gas.png
new file mode 100644
index 0000000..709cb8b
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/erc20gas.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fullstackaa.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fullstackaa.png
new file mode 100644
index 0000000..57c21b0
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fullstackaa.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fulstackaa.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fulstackaa.png
new file mode 100644
index 0000000..4255b43
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/fulstackaa.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/modularsa.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/modularsa.png
new file mode 100644
index 0000000..c8bd009
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/modularsa.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/overview.webp b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/overview.webp
new file mode 100644
index 0000000..1656158
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/overview.webp differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/sponsored.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/sponsored.png
new file mode 100644
index 0000000..043f649
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/overview/sponsored.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/add_paymaster.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/add_paymaster.png
new file mode 100644
index 0000000..72c98d7
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/add_paymaster.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/dashboard_login.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/dashboard_login.png
new file mode 100644
index 0000000..900dcdf
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/dashboard_login.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/deposit_funds.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/deposit_funds.png
new file mode 100644
index 0000000..91919fb
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/deposit_funds.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/first_time_gastank.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/first_time_gastank.png
new file mode 100644
index 0000000..5ce42cd
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/first_time_gastank.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/register_paymaster.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/register_paymaster.png
new file mode 100644
index 0000000..722bb39
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/register_paymaster.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/withdraw_funds.png b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/withdraw_funds.png
new file mode 100644
index 0000000..ab34ecc
Binary files /dev/null and b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/images/paymaster/withdraw_funds.png differ
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/index.md b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/index.md
new file mode 100644
index 0000000..a5178ce
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/biconomy/index.md
@@ -0,0 +1,43 @@
+import Figure from '/src/components/figure'
+
+# Overview
+
+The Biconomy SDK is an Account Abstraction toolkit that enables the simplest UX on your dApp, wallet or appchain. Built on top of the ERC 4337 solution for Account Abstraction, we offer a full-stack solution for tapping into the power of our Smart Accounts Platform, Paymasters, and Bundlers.
+
+
+
+## Smart Accounts Platform
+
+The Biconomy Smart Account is an ERC 4337-compliant solution that works with any Paymaster and Bundler service. Smart Accounts are governed by code instead of ECDSA, which allows for other types of signature algorithms to be used with the Smart Account. Additionally, the smart accounts package allows you to quickly and easily build and execute User Operations or userOps. These are pseudo-transaction objects that eventually execute as a transaction on the EVM.
+
+The Biconomy Smart Accounts are signer agnostic, which allows you to use any authorization package of your choice as long as you can pass a signer to our SDK upon the creation of a Smart Account. Check out different ways you can create a Biconomy Smart Account [here](https://docs.biconomy.io/category/signers).
+
+
+Smart Accounts are further enhanced by validation modules that allow you to execute arbitrary logic before validating a userOp. This allows you, as a developer, to build modules that allow for session keys, multi-chain validation modules, pass keys, and more.
+
+
+
+If you want to start diving into Smart Accounts you can do so [here](https://docs.biconomy.io/category/smart-accounts). If you know all about Smart Accounts and prefer to start working with modules, start learning about them [here](https://docs.biconomy.io/category/modules) or follow this step-by-step [tutorial](https://docs.biconomy.io/category/session-keys-tutorial) on how to build a dApp that utilizes session key modules.
+
+## Paymaster
+
+Biconomy offers a Paymaster service designed with one of the best developer experiences in mind. Simply use one URL and switch modes between our sponsorship paymaster and our Token Paymaster.
+
+### Sponsorship Paymaster
+
+
+
+
+If the mode you choose in the request to the Paymaster URL is the sponsored mode, your users will benefit from gasless transactions, and you remove the friction point of needed native tokens to pay for gas on transactions. Learn how to set up your paymaster [here](https://docs.biconomy.io/dashboard/paymaster).
+
+### Token Paymaster
+
+
+
+Switching the mode of your Paymster to ERC20 allows you to unlock an experience where users can pay gas in any of our supported ERC20 tokens on different networks. Check out the latest supported tokens [here](https://docs.biconomy.io/supportedchains/supportedTokens).
+
+Learn how to utilize either of these Paymasters by checking out our How To Guide on [Executing transactions](https://docs.biconomy.io/category/executing-transactions)
+
+## Bundler
+
+The Bundler is a service that tracks userOps that exist in an alternative mem pool and as the name suggests, bundles them together to send to an Entry Point Contract for eventual execution onchain. This is the final piece of the flow where after constructing your userOp and then potentially signing it with data from a paymaster, you send the userOp on chain to be handled and executed as a transaction on the EVM. You can start using our Bundlers right now in your dApps; each of our [tutorials](https://docs.biconomy.io/category/tutorials) will walk you through how to use them in different scenarios.
\ No newline at end of file
diff --git a/docs/build/build-on-layer-1/integrations/account-abstraction/index.md b/docs/build/build-on-layer-1/integrations/account-abstraction/index.md
new file mode 100644
index 0000000..229dc55
--- /dev/null
+++ b/docs/build/build-on-layer-1/integrations/account-abstraction/index.md
@@ -0,0 +1,27 @@
+# Account Abstraction
+
+:::note
+Please note that this section is under active development.
+:::
+
+## Overview
+Here you will find all the information required to refine the end-user experience and allow for seamless web2-like interactions with dApps and accounts on the Astar EVM.
+
+Account Abstraction is a blockchain technology that enables users to utilize smart contracts as their accounts. While the default account for most users is an Externally Owned Account (EOA), which is controlled by an external private key, it requires users to have a considerable understanding of blockchain technology to use them securely. Fortunately, smart contract accounts can create superior user experiences.
+
+### Using Account Abstraction
+There are two primary ways users can use account abstraction: with third party meta transaction services or by sending ERC-4337 transactions.
+
+#### Meta Transactions
+Meta transactions are bespoke third party services for achieving account abstraction.
+
+#### ERC-4337
+ERC-4337, also known as EIP-4337.
+- Banana Wallet SDK
+
+
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+
diff --git a/docs/build/build-on-layer-1/introduction/create_account.md b/docs/build/build-on-layer-1/introduction/create_account.md
index 012388e..7415431 100644
--- a/docs/build/build-on-layer-1/introduction/create_account.md
+++ b/docs/build/build-on-layer-1/introduction/create_account.md
@@ -3,8 +3,8 @@ sidebar_position: 3
---
# Create Account
-If you never created a native Astar account, please follow the instructions in the [User Guide] (/docs/use/how-to-guides/layer-1/manage-wallets/create-wallet.md) [INSERT LINK].
+If you've never created a native Astar account, please follow the instructions in the [User Guide] (/docs/use/how-to-guides/layer-1/manage-wallets/create-wallet.md) [INSERT LINK].
-If you are building EVM smart contracts you will need Metamask. Watch this short video to learn how.
+If you are building EVM smart contracts you will need MetaMask. Watch this short video to learn how.
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/faq.md b/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/faq.md
index 6d3928f..1477f7f 100644
--- a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/faq.md
+++ b/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/faq.md
@@ -12,7 +12,7 @@ Yes. visit Polkadot.js, connect your wallet and go to Network > Balances and sel
## Q: I used XCM to transfer 5 DOT from Polkadot to Astar, but only received 4.999
-Please note that the gas amount will be deducted from the amount entered, so the amount transferred should be adjusted according to account for the gas fee estimate. For more information, visit [here](/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/index.md)
+Please note that the gas amount will be deducted from the amount entered, so the amount transferred should be adjusted according to account for the gas fee estimate. For more information, visit [here](/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/index.md)
## Q: My balance should be 1.00012 DOT but the Portal is displaying 1 DOT, where are they?
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/_category_.json b/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/_category_.json
deleted file mode 100644
index 53d6cac..0000000
--- a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Using XCM",
- "position": 1
-}
\ No newline at end of file
diff --git a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/index.md b/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/index.md
deleted file mode 100644
index 7864bf9..0000000
--- a/docs/build/build-on-layer-1/smart-contracts/building-cross-chain-contracts/xcm/using-xcm/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# XCM
-
-Astar Network stands as a flexible and highly interoperable decentralized application hub supporting not only WebAssembly and EVM smart contracts, but cross-VM communications (XVM), as well.
-Astar commonly utilize XCM to leverage assets from other parachains. Furthermore, XCM finds utility within smart contracts to build purely cross-chain dApps, for deployment on either EVM or Wasm stack, or both.
-
-
-
-The most frequently encountered scenario involves users transferring their **DOT** from Polkadot over to **Astar**, and vice-versa. The Astar ecosystem version of **DOT** can then be used for smart contracts, and dApps can integrate it. Another commonly observed application is within DeFi dApps, where XCM enables **DOT** trading without requiring a bridge, and offer asset swaps across multiple chains that would have previously required many steps, requiring only one transaction.
-
-In this section, we will describe the technical details of XCM so that developers can leverage it in their dApps. Do note that Astar/Polkadot and Shiden/Kusama examples are interchangeable as the features are supported on both networks.
-
-
-
-import DocCardList from '@theme/DocCardList';
-import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
-
-
-
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/_category_.json b/docs/build/builder-guides/layer-1/astar-beta-labs/_category_.json
new file mode 100644
index 0000000..49fd9c9
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Astar Beta Labs",
+ "position": 11
+}
\ No newline at end of file
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/_category_.json b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/_category_.json
new file mode 100644
index 0000000..c80e6ae
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Account Unification",
+ "position": 1
+}
\ No newline at end of file
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide01.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide01.png
new file mode 100644
index 0000000..39af950
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide01.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide02.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide02.png
new file mode 100644
index 0000000..e4dbb59
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide02.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide03.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide03.png
new file mode 100644
index 0000000..9e34ea2
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide03.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide04.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide04.png
new file mode 100644
index 0000000..929045e
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide04.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide05.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide05.png
new file mode 100644
index 0000000..8a95e8a
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide05.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide06.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide06.png
new file mode 100644
index 0000000..49a7ae4
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/guide06.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/lookup.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/lookup.png
new file mode 100644
index 0000000..011f518
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/lookup.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/with.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/with.png
new file mode 100644
index 0000000..3254d4f
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/with.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/without.png b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/without.png
new file mode 100644
index 0000000..200aec6
Binary files /dev/null and b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/img/without.png differ
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/index.md b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/index.md
new file mode 100644
index 0000000..ff79ee5
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/index.md
@@ -0,0 +1,152 @@
+# Account Unification
+
+## Overview
+
+Astar Substrate is a Multi-VM chain that consists of Astar EVM and Astar Native (Wasm) smart contract environments that are interoperable in nature. This allows developers to create impactful and innovative solutions for end users on top of Astar Substrate, however, it comes at the expense of what is considered good UX.
+
+Astar EVM is powered by Frontier (a combination of pallets and client for emulating EVM networks) which enables Astar Substrate to run a highly ETH equivilent L1 chain on top of a Substrate-based chain. Since both EVM and Native Substrate chains have independent address and signature schemes that are distinct from one another, interoperability between them becomes a challenge.
+
+The Astar Substrate chain consists of:
+
+- Astar Substrate EVM: This is powered by [`frontier`](https://github.com/paritytech/frontier) and uses ETH address schemes where user address is `H160`
+- Astar Substrate Native (Wasm): The address scheme is `AccountId32` where user address is described in `SS58` format.
+
+All the solutions that require performing actions on other VMs, i.e interoperability between VMs like `XVM` and `frontier`, require a deterministic way of converting their addresses to the other VM’s address scheme.
+
+:::caution
+Throughout this doc we will use words “address” and “account” interchangeably, although they are different in literal sense, in the context of this doc they are treated the same.
+:::
+
+:::info
+Account Unification codebase has been audited in December 2023 - Audit report is available on [Astar Network Audit Reports](https://github.com/AstarNetwork/Audits)
+:::
+
+### How does `frontier` handle accounts?
+
+Put simply, there are a set of Native Substrate accounts existing in parallel to the EVM accounts managed by the `frontier` pallet, and one-to-one mappings from the Substrate accounts to EVM accounts are defined by a conversion trait called `AddressMapping` in the `frontier` pallet’s config.
+
+For each H160 address, the EVM pallet uses `AddressMapping` to generate a corresponding SS58 address, which is the account that's *actually* used to interact with the native side of chain, including by holding its balance in `pallet-balances`. So, the native balance is *actually* stored in `pallet-balances` via the SS58 address generated by the mapping.
+
+In short, every EVM address used on the Astar Substrate EVM has an SS58 counterpart existing on the Native side, so, in a sense, the generated SS58 account acts as the backend for all the operations of the H160 native account.
+
+
+$$
+AddressMapping(H160_A) => SS58_A
+
+$$
+
+
+This architecture makes it easier for the EVM side chain to interact seamlessly with the native chain. For example we can wrap the pallet’s interfaces via precompiles for EVM users to consume, and all the pallet’s calls will originate from the SS58 address.
+
+Problems associated with this,
+
+- Since the SS58 address is generated using hashed derivation formula, there is no known private key attached to it. Thus, a user can’t control it directly; actually, no one can.
+- The mapping happens in one direction only, i.e from H160 → SS58. We can obtain an SS58 address that's associated with an H160 but it doesn't go the other way around in order to derive an H160 address from a given SS58.
+
+### How does `XVM` handle accounts?
+
+Since XVM allows smart contracts from either VM to call each other, we require a way to convert addresses both ways.
+
+Before Account Unification, the XVM pallet used the same `AddressMapping` trait from the `frontier` pallet for conversions from H160 → SS58 and `AccountMapping` (a new trait) for conversions from SS58 → H160.
+
+Since the conversions are one way only, this is not a complete solution. That means there is no way to derive the original address from a generated address, if wanting to go in the other direction.
+
+## What is Account Unification?
+
+AU is designed to solve the core problems described above:
+
+- **No double mapping**: This has the most impact since without it we can’t go back on a generated address. For example, if we have a SS58 corresponding to H160, we can’t know which H160 it belonged to.
+- **Users can’t control the generated address:** This is more on UX side, since Astar is a Cross-VM, users are encouraged to engage with both EVM and native Wasm ecosystems equally, but managing two different accounts for two VMs that are not interchangeable with one another is bad UX, from user’s perspective.
+
+Account Unification (AU) provides users the ability to bind their H160 and SS58 addresses together and create double mappings, which can then be used by low-level solutions that require address conversions, such as EVM (i.e `frontier`) and XVM.
+
+![Without-Unification](./img/without.png)
+
+![With-Unification](./img/with.png)
+
+## How does AU work?
+
+We introduced a new pallet called [`pallet-unified-accounts`](https://github.com/AstarNetwork/Astar/tree/master/pallets/unified-accounts) responsible for managing double mappings between address schemes (H160 and SS58).
+
+### `pallet-unified-accounts`
+
+The Unified Accounts pallet provides functionality for native account holders to connect their EVM address and have a unified experience across the different VMs by providing an ETH signature to prove their ownership over their EVM Address.
+
+The pallet has two dispatch-able calls,
+
+- `claim_evm_address` : Users can submit a signature to prove their ownership over the EVM address and therefore claim it, thus creating a double mapping between these accounts, SS58 and H160.
+- `claim_default_evm_address`: If a user is not interested in controlling the generated account and only wants to have a double mapping, this is used. It creates a double mapping based on the (existing) default generated EVM address.
+
+The Unified Accounts pallet provides implementations of various address conversion traits that can consumed by other solutions, such as `AddressMapping` for `frontier` and `AccountMapping` for `XVM`.
+
+**Signature Scheme**
+
+Users need to provide a valid [EIP712 signed payload](https://eips.ethereum.org/EIPS/eip-712) of their SS58 address. The payload for EIP712 signatures consists of two parts, domain hash and type hash with the actual payload.
+
+Below is a very simple snippet to produce the signed payload and claim accounts using `ethers.js`,
+
+```jsx
+async function buildSignature(signer, substrateAddress, api, chainId) {
+ return await signer.signTypedData(
+ {
+ chainId: chainId, // evm chain id
+ name: "Astar EVM Claim", // app name
+ version: "1", // version
+ salt: await api.query.system.blockHash(0), // genesis hash
+ },
+ {
+ Claim: [{ name: "substrateAddress", type: "bytes" }],
+ },
+ {
+ substrateAddress,
+ }
+ );
+}
+```
+
+## New Possibilities
+
+After AU there are a lot of new possibilities enabled by the double mappings between account schemes. Some of the impactful ones are below,
+
+### Unified Balance
+
+After the accounts are unifed, they’ll share the same balances across EVM and Substrate Native. This is true for native assets like XC20 (`pallet-assets`), as well as native balances (`pallet-balances`).
+
+### Transfer XC20 to Native Addresses
+
+Previously there was no proper way to transfer XC20 Assets to a native account. AU changes this, and if the recipient user has AU enabled then the user/dapp can fetch the connected EVM address and send the tokens to that address, as both accounts (native and EVM) are unified.
+
+### Transfer funds directly to EVM Address
+
+Users can now transfer funds directly to their EVM address without the need to calculate a derived SS58 address (i.e selecting `Address20` in Lookup values.)
+
+This is valid for all EVM addresses and *does not require AU to be enabled.*
+
+![Lookup-Use](./img/lookup.png)
+
+## Things to consider
+
+If it's too good to be true then it probably is!
+
+### Mappings are immutable
+
+Under the current design, once mappings are in place they cannot be modified. This is a precautionary measure to prevent loss of funds and other potential mishaps since the act of modifying the underlying SS58 address of an EVM account is very sensitive.
+
+Since accounts are dispensable, if a user wishes to change mappings he/she can simply create a new set of accounts to be connected.
+
+### Manually transfer the native state (including funds)
+
+Since before unifying the accounts any interaction from the EVM to the Native side is performed via the default derived account, including all the holdings
+of native funds like XC20, dAppStaking rewards (if interacted with staking precompiles), etc, thus they need to be transferred to the new SS58 account before accounts are unified otherwise the funds will be lost. The pallet only handles the transfer of native balances, and all other native assets need to be transferred manually.
+
+Also for EVM smart contract developers, if a contract is XVM enabled and it calls into a Wasm contract, there should be a mechanism in place to migrate the state to a new SS58 account so that users can do that before unifying accounts.
+
+:::caution
+It is strongly advised to use only the Astar Portal for unifying accounts as it is designed to handle the asset transfer process properly. **If the pallet’s extrinsics are used directly then native funds will be lost forever.**
+:::
+
+### Problems with EVM Indexers & Explorers
+
+Once accounts are unified they share balances (XC20, native balance) and both accounts can control them.
+
+When balances are updated on the native side there are no logs or events emitted on the EVM side, thus indexers and block explorers face problems displaying accurate balances for native assets.
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/users_guide.md b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/users_guide.md
new file mode 100644
index 0000000..d660af9
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/account-unification/users_guide.md
@@ -0,0 +1,103 @@
+---
+sidebar_position: 2
+---
+# How to create a unified account
+
+import guide01 from "./img/guide01.png"
+import guide02 from "./img/guide02.png"
+import guide03 from "./img/guide03.png"
+import guide04 from "./img/guide04.png"
+import guide05 from "./img/guide05.png"
+import guide06 from "./img/guide06.png"
+
+## What is a Unified Account?
+
+Creating a Unified account is simple, however, it's important to understand that this is still an emerging technology. We do not recommend attempting account unification until you are familiar with how it works.
+
+A Unified account provides a simplified experience for end-users of Astar Substrate-based networks. Since on Astar Substrate, native Wasm and the EVM use two different address formats, new users find it challenging to grasp how they function. While both Astar Native and Astar EVM accounts are *typically* required, with unified accounts, users don't have to worry about which wallet they are connected to. When unifed accounts work in conjuction with XVM, they are designed to form a powerful new way to abstract away the inner workings of the Substrate native VM side from end users, entirely, allowing them to interact with both networks seamlessly using only MetaMask.
+
+## What is possible?
+
+- Two accounts; one balance. When accounts are unified, they share the same balance. The moment ASTR tokens are withdrawn from a CEX exchange to an Astar Native account, the balance is updated on the Astar EVM side. There's no need to transfer between them any longer; users can stake tokens immediately, for example, or use a DEX.
+
+- Furthermore, it's already possible to interact with Wasm dApps using a Unified account, as long as the dApp supports EVM wallets. The core team is currently developing XVM, which allows a Unified account to interact with EVM smart contracts.
+
+## How to create an unified account
+
+:::caution
+At this moment this feature is only available on Shibuya testnet.
+:::
+
+### Disclaimer: Before creating a Unified account, please ensure you understand the following
+
+- Unified accounts are specific to each network. Creating a Unified account on Shibuya using Shibuya Native account A and Shibuya EVM account A does not carry over to Shiden or Astar.
+
+- Staking balances on the EVM must be unstaked first before initiating the process since staked tokens cannot be transferred to the unified balance.
+
+- Custom xcTokens (rather than official XCM tokens) are not included automatically during the account unification process, so they need to be transferred to an EVM wallet separately. To obtain test xcTokens on Shibuya, please contact @kahori on Discord.
+
+- There is a fee (slightly more than 1 SBY) for creating a Unified account. If you have an existing Account ID (Substrate), this charge acts more like a deposit than a fee. However, it can not be refunded as accounts currently cannot be separated after they are unified.
+
+### 1, Start by connecting Native account.
+
+Please prepare following:
+
+- **Shibuya Native account**
+- **Shibuya EVM account**
+- Must have no staking balance.
+- Must have non-zero balances on both accounts (enough for gas) Use the faucet built into the [Portal](https://portal.astar.network) to obtain enough for gas fees, if you need to.
+- To understand the process more thoroughly, obtain some test tokens. Please ask a team member if you do not know how to obtain test tokens.
+
+Make sure you are connected to the Shibuya testnet. You should see a new account icon on the Asset page, and can initiate the process from there.
+
+
+
+
+
+
+
+
+
+### 2, Read the disclaimer.
+
+
+
+
+
+### 3, Connect to EVM wallet.
+
+It is recommended to use a new wallet, but if you wish to use an existing EVM account, please make sure to unstake all tokens first.
+
+
+
+
+
+### 4, Add your account name.
+
+The account name will be visible on-chain. We are working on adding NFT pfp support in time for when Account Unification comes on Astar.
+
+
+
+
+
+### 5, Send xcTokens.
+
+xcTokens do not live in the EVM account balance. Before unifying the balance, the portal will send xcTokens to a Unified account. When testing the environment, most of you may not have xcTokens. Please find a team member and ask for them for this purpose. You will be asked to sign an EVM transaction.
+
+
+
+
+
+### 6, Confirm everything looks okay. Press the button and the accounts will be unified.
+
+### 7, To confirm the accounts were unified:
+
+- Check that the SBY tokens balances are unified.
+
+- Check that xcTokens ERC token balances are available after connecting a Substrate wallet.
+
+- You can send xcTokens from the unified Substrate account.
+
+:::note
+We are working on a wallet modal to create a Unified Account section, where users can use unified accounts without needing to select a specific wallet.
+:::
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/index.md b/docs/build/builder-guides/layer-1/astar-beta-labs/index.md
new file mode 100644
index 0000000..757ac7d
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/index.md
@@ -0,0 +1,12 @@
+# Astar Beta Labs
+
+## Overview
+
+This section is for experimental technologies and features that are still in development that may only be available in testnet environments.
+
+
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/_category_.json b/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/_category_.json
new file mode 100644
index 0000000..085760b
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "MetaMask Snaps",
+ "position": 2
+}
\ No newline at end of file
diff --git a/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/index.md b/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/index.md
new file mode 100644
index 0000000..b265afb
--- /dev/null
+++ b/docs/build/builder-guides/layer-1/astar-beta-labs/metamask-snaps/index.md
@@ -0,0 +1,13 @@
+# MetaMask Snaps
+
+## Overview
+
+MetaMask Snaps allow users to add features and functionality to their MetaMask wallet. Individual snaps are features created by third-party developers that MetaMask users can install directly into their wallet. MetaMask Snaps Open Beta is a first look at what's possible when extending the capabilities of the MetaMask wallet. Snaps run in a sandboxed environment and use a permissions model to protect your data and respect your consent. Snaps don’t have access to your MetaMask account data. When installing a Snap, you can always verify the permissions you are granting.
+
+:::note
+Snap-based accounts are derived from the private key associated with your MetaMask account (your seed phrase), so funds cannot be lost even in the event support for a particular Snap is discontinued.
+:::
+
+Learn more about how to use the Astar MetaMask Snap [here.](https://docs.astar.network/docs/use/manage-wallets/wallet-providers/metamask-astar-snap/)
+
+Please note that this section is part of Astar Beta Labs and may contain incomplete or outdated information. For production-ready solutions, please refer to material outside the Astar Beta Labs section.
\ No newline at end of file
diff --git a/docs/build/builder-guides/layer-1/evm/hacking/hack_wasm.md b/docs/build/builder-guides/layer-1/evm/hacking/hack_wasm.md
index 6b90ea2..158a1d3 100644
--- a/docs/build/builder-guides/layer-1/evm/hacking/hack_wasm.md
+++ b/docs/build/builder-guides/layer-1/evm/hacking/hack_wasm.md
@@ -30,7 +30,7 @@ Please note that the current version of polkadot-JS is broken for contracts beca
:::
-## From Zero to ink Hero [Tutorials](/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/flipper.md)
+## From Zero to ink Hero [Tutorials](/docs/build/builder-guides/layer-1/wasm/flipper-contract/flipper.md)
Depending on your confidence, use any of these tutorial. If you are just starting, the Flipper contract is the way to go.
* Your task is to deploy the contract from the tutorial to Shibuya Network.
* After you build contract notice where the `.contract` and `metadata.json` are created.
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/_category_.json b/docs/build/builder-guides/layer-1/wasm/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/_category_.json b/docs/build/builder-guides/layer-1/wasm/dex/Factory/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/dex/Factory/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/create-pair.md b/docs/build/builder-guides/layer-1/wasm/dex/Factory/create-pair.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/create-pair.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Factory/create-pair.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/getters.md b/docs/build/builder-guides/layer-1/wasm/dex/Factory/getters.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/getters.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Factory/getters.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/modifiers.md b/docs/build/builder-guides/layer-1/wasm/dex/Factory/modifiers.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Factory/modifiers.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Factory/modifiers.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/_category_.json b/docs/build/builder-guides/layer-1/wasm/dex/Pair/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/burn.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/burn.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/burn.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/burn.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/mint.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/mint.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/mint.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/mint.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/modifiers.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/modifiers.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/modifiers.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/modifiers.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/psp22.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/psp22.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/psp22.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/psp22.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/storage.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/storage.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/storage.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/storage.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/swap.md b/docs/build/builder-guides/layer-1/wasm/dex/Pair/swap.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Pair/swap.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Pair/swap.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Structure/_category_.json b/docs/build/builder-guides/layer-1/wasm/dex/Structure/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Structure/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/dex/Structure/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Structure/file-structure.md b/docs/build/builder-guides/layer-1/wasm/dex/Structure/file-structure.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/Structure/file-structure.md
rename to docs/build/builder-guides/layer-1/wasm/dex/Structure/file-structure.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/_category_.json b/docs/build/builder-guides/layer-1/wasm/dex/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/dex/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/dex.md b/docs/build/builder-guides/layer-1/wasm/dex/dex.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/dex/dex.md
rename to docs/build/builder-guides/layer-1/wasm/dex/dex.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/_category_.json b/docs/build/builder-guides/layer-1/wasm/flipper-contract/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/flipper-contract/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/flipper-contract.md b/docs/build/builder-guides/layer-1/wasm/flipper-contract/flipper-contract.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/flipper-contract.md
rename to docs/build/builder-guides/layer-1/wasm/flipper-contract/flipper-contract.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/flipper.md b/docs/build/builder-guides/layer-1/wasm/flipper-contract/flipper.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/flipper-contract/flipper.md
rename to docs/build/builder-guides/layer-1/wasm/flipper-contract/flipper.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/index.md b/docs/build/builder-guides/layer-1/wasm/index.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/index.md
rename to docs/build/builder-guides/layer-1/wasm/index.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/_category_.json b/docs/build/builder-guides/layer-1/wasm/manic-minter/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/manic-minter/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-contract.md b/docs/build/builder-guides/layer-1/wasm/manic-minter/manic-contract.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-contract.md
rename to docs/build/builder-guides/layer-1/wasm/manic-minter/manic-contract.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-e2e.md b/docs/build/builder-guides/layer-1/wasm/manic-minter/manic-e2e.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-e2e.md
rename to docs/build/builder-guides/layer-1/wasm/manic-minter/manic-e2e.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-minter.md b/docs/build/builder-guides/layer-1/wasm/manic-minter/manic-minter.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-minter.md
rename to docs/build/builder-guides/layer-1/wasm/manic-minter/manic-minter.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-setup.md b/docs/build/builder-guides/layer-1/wasm/manic-minter/manic-setup.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/manic-minter/manic-setup.md
rename to docs/build/builder-guides/layer-1/wasm/manic-minter/manic-setup.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/CustomTrait/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/CustomTrait/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/CustomTrait/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/CustomTrait/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/CustomTrait/customtrait.md b/docs/build/builder-guides/layer-1/wasm/nft/CustomTrait/customtrait.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/CustomTrait/customtrait.md
rename to docs/build/builder-guides/layer-1/wasm/nft/CustomTrait/customtrait.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Events/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/Events/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Events/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/Events/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Events/events.md b/docs/build/builder-guides/layer-1/wasm/nft/Events/events.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Events/events.md
rename to docs/build/builder-guides/layer-1/wasm/nft/Events/events.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Override/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/Override/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Override/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/Override/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Override/override.md b/docs/build/builder-guides/layer-1/wasm/nft/Override/override.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Override/override.md
rename to docs/build/builder-guides/layer-1/wasm/nft/Override/override.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintImpl/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/PayableMintImpl/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintImpl/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/PayableMintImpl/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintImpl/payablemintimpl.md b/docs/build/builder-guides/layer-1/wasm/nft/PayableMintImpl/payablemintimpl.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintImpl/payablemintimpl.md
rename to docs/build/builder-guides/layer-1/wasm/nft/PayableMintImpl/payablemintimpl.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintTrait/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/PayableMintTrait/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintTrait/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/PayableMintTrait/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintTrait/payableminttrait.md b/docs/build/builder-guides/layer-1/wasm/nft/PayableMintTrait/payableminttrait.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/PayableMintTrait/payableminttrait.md
rename to docs/build/builder-guides/layer-1/wasm/nft/PayableMintTrait/payableminttrait.md
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Wizard/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/Wizard/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Wizard/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/Wizard/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Wizard/wizard.md b/docs/build/builder-guides/layer-1/wasm/nft/Wizard/wizard.md
similarity index 98%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Wizard/wizard.md
rename to docs/build/builder-guides/layer-1/wasm/nft/Wizard/wizard.md
index c465c53..dc5dfbf 100644
--- a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/Wizard/wizard.md
+++ b/docs/build/builder-guides/layer-1/wasm/nft/Wizard/wizard.md
@@ -5,7 +5,7 @@
To create a smart contract which follows PSP34 standard use Openbrush Wizard:
1. Open [Openbrush.io](https://openbrush.io/) website and go to bottom of the page.
2. Select PSP34.
-3. Select the version to match the rest of the tutorial. Check *What will be used* in the [opening chapter](/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/nft.md#what-will-be-used).
+3. Select the version to match the rest of the tutorial. Check *What will be used* in the [opening chapter](/docs/build/builder-guides/layer-1/wasm/nft/nft.md#what-will-be-used).
4. Name your contract. In this tutorial we will use `Shiden34`.
5. Add your symbol name. In this tutorial we will use `SH34`.
6. Select extensions: *Metadata*, *Mintable*, *Enumerable*.
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/_category_.json b/docs/build/builder-guides/layer-1/wasm/nft/_category_.json
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/_category_.json
rename to docs/build/builder-guides/layer-1/wasm/nft/_category_.json
diff --git a/docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/nft.md b/docs/build/builder-guides/layer-1/wasm/nft/nft.md
similarity index 100%
rename from docs/build/builder-guides/layer-1/wasm/from-zero-to-ink-hero/nft/nft.md
rename to docs/build/builder-guides/layer-1/wasm/nft/nft.md
diff --git a/docs/use/how-to-guides/layer-1/dapp-staking/for-devs/requirements.md b/docs/use/how-to-guides/layer-1/dapp-staking/for-devs/requirements.md
index 37a30bf..ea6a442 100644
--- a/docs/use/how-to-guides/layer-1/dapp-staking/for-devs/requirements.md
+++ b/docs/use/how-to-guides/layer-1/dapp-staking/for-devs/requirements.md
@@ -18,8 +18,8 @@ Astar is aiming to become a DAO in a couple of years. While moving towards becom
### Astar Network
- Your dApp is **launched and live on Astar Network**
-- Does your project contribute to Astar TVL? Make sure you are listed on [DefilLama] (/docs/build/integrations/dapp-listing/defillama). **LINK TO UPDATE**
-- List your project on [DappRadar] (/docs/build/integrations/dapp-listing/dappradar). **LINK TO UPDATE**
+- Does your project contribute to Astar TVL? Make sure you are listed on [DefilLama] (/docs/build/build-on-layer-1/integrations/dapp-listing/defillama). **LINK TO UPDATE**
+- List your project on [DappRadar] (/docs/build/build-on-layer-1/integrations/dapp-listing/dappradar). **LINK TO UPDATE**
- Your dApp has #astar-network, #dAppStaking tags in your GitHub repo.
- You need to create a PR to the Ecosystem Page. As our website is open-source, you can contribute directly to it - just create a PR on your own! [Here](https://github.com/AstarNetwork/astarwebsite_v2/blob/349db39d724b57f58fbee84b3fa500bf0d29bee6/components/Header.vue)
- If you wish to have your project listed on Astar website [ecosystem page](https://astar.network/community/ecosystem), fill in this [FORM](https://forms.gle/xsGUnCt3fm4isWWF7).