# L1X Developer SDK

## Architecture Overview

- [L1X Development Architecture Overview](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-development-architecture-overview.md)
- [Miro Board for L1X Architecture](https://l1x-sdk.gitbook.io/l1x-developer-interface/miro-board-for-l1x-architecture.md)

## Source Code

- [Quick Links](https://l1x-sdk.gitbook.io/l1x-developer-interface/source-code/quick-links.md)

## Get Started

- [L1X Native SDK for L1X VM](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm.md)
- [Set up Environment](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment.md)
- [Pre-Requisites](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/pre-requisites.md)
- [Installation](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/installation.md)
- [Install Cargo L1X](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/installation/install-cargo-l1x.md)
- [Ubuntu and Windows (WSL)](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/installation/install-cargo-l1x/ubuntu-and-windows-wsl.md)
- [Mac (Intel and Silicon)](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/installation/install-cargo-l1x/mac-intel-and-silicon.md)
- [Install L1X CLI (Beta)](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/set-up-environment/installation/install-l1x-cli-beta.md)
- [Build your First Smart Contract on L1X VM](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/build-your-first-smart-contract-on-l1x-vm.md)
- [Common Flags and Arguments](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-native-sdk-for-l1x-vm/build-your-first-smart-contract-on-l1x-vm/common-flags-and-arguments.md)
- [L1X CLI Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-vm-sdk/l1x-cli-methods.md)
- [Pre-Requisites](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-evm-sdk/pre-requisites.md)
- [Hardhat Installation & Deploy your First L1X EVM FT Contract](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-evm-sdk/hardhat-installation-and-deploy-your-first-l1x-evm-ft-contract.md): You can use Hardhat and Ethers to Compile, Deploy and Interact with Contracts on L1X EVM.
- [L1X Library](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library.md)
- [L1X Typescript SDK](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-typescript-sdk.md): Utilize this tool to engage with accounts and programs on the L1X Network via the L1X Network JSON RPC API.
- [Account Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/account-methods.md): Wallet methods on a blockchain refer to the various techniques for securely storing and managing cryptographic keys, enabling users to access and control their digital assets such as cryptocurrencies.
- [How to import wallet using mnemonic?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/account-methods/how-to-import-wallet-using-mnemonic.md)
- [How to import wallet using private key?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/account-methods/how-to-import-wallet-using-private-key.md)
- [Core Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods.md): In blockchain, vital data includes account status, block specifics via numbers, and event exploration. Confirm nonces, acquire receipts for depth; review transaction history for insights.
- [How to get Account State?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-account-state.md)
- [How to get block information by block number?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-block-information-by-block-number.md)
- [How to get chain state?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-chain-state.md)
- [How to get events?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-events.md): getEvents
- [How to get current nonce?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-current-nonce.md)
- [How to get account transactions?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-account-transactions.md)
- [How to get the transaction recipt?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-get-the-transaction-recipt.md)
- [How to broadcast transactions?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/core-methods/how-to-broadcast-transactions.md)
- [L1X VM Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-vm-methods.md): Initialising L1X-VM contracts and using readonly and state changing function calls.
- [How to deploy a VM contract?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-vm-methods/how-to-deploy-a-vm-contract.md)
- [How to initialise a VM contract?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-vm-methods/how-to-initialise-a-vm-contract.md)
- [How to make VM readonly calls?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-vm-methods/how-to-make-vm-readonly-calls.md)
- [How to make VM contract state changing calls?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-vm-methods/how-to-make-vm-contract-state-changing-calls.md)
- [L1X EVM Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-evm-methods.md): We recommend using Hardhat and EtherJS to interact with L1X EVM Contracts. Incase you would like to use L1X Wallet SDK you can deploy/initialise, read and make state changing calls with it.
- [How to initialise a smart contract?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-evm-methods/how-to-initialise-a-smart-contract.md)
- [How to make an EVM contract state changing call?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-evm-methods/how-to-make-an-evm-contract-state-changing-call.md)
- [How to make EVM read only calls?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/l1x-evm-methods/how-to-make-evm-read-only-calls.md)
- [Other Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods.md)
- [Native Token Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/native-token-methods.md): Transfer native tokens by initiating a direct transaction. Specify recipient's address and desired amount. Broadcast the transaction for processing on the blockchain.
- [How to transfer native token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/native-token-methods/how-to-transfer-native-token.md)
- [How to get native token balance?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/native-token-methods/how-to-get-native-token-balance.md)
- [How to get signed payload for transfer?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/native-token-methods/how-to-get-signed-payload-for-transfer.md)
- [Fungible Token Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods.md): Generate fungible tokens, mint new ones, and grant approvals. Retrieve token attributes and balances, check allowances. Facilitate token transfers and use transfer-from functionality.
- [How to create fungible tokens?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-create-fungible-tokens.md)
- [How to mint fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-mint-fungible-token.md)
- [How to give approval to fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-give-approval-to-fungible-token.md)
- [How to get fungible token attributes?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-get-fungible-token-attributes.md)
- [How to get a fungible token balance?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-get-a-fungible-token-balance.md)
- [How to get an allowence of fungible tokens?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-get-an-allowence-of-fungible-tokens.md)
- [How to transfer fungible tokens?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-transfer-fungible-tokens.md)
- [How to use transfer from of fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/fungible-token-methods/how-to-use-transfer-from-of-fungible-token.md)
- [Non-fungible Token Methods](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods.md): Create Non-Fungible Tokens and mint new ones. Check NFT balances and attributes. Approve spenders and manage operator approvals. Access token owners by ID, transfer NFTs, and burn NFT's
- [How to Create a Non-Fungible Token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-create-a-non-fungible-token.md)
- [How to mint a Non-Fungible Token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-mint-a-non-fungible-token.md)
- [How to get the balance of a Non-Fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-get-the-balance-of-a-non-fungible-token.md)
- [How to get the attribute of a Non-Fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-get-the-attribute-of-a-non-fungible-token.md)
- [How to approve a spender to manage a specific Non-Fungible token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-approve-a-spender-to-manage-a-specific-non-fungible-token.md)
- [How to set or revoke approval for a specific operator to manage all tokens of the sender?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-set-or-revoke-approval-for-a-specific-operator-to-manage-all-tokens-of-the-sender.md)
- [How to get the owner of a Non-Fungible token by its ID?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-get-the-owner-of-a-non-fungible-token-by-its-id.md)
- [How to Transfer a Non-Fungible token from one address to another?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-transfer-a-non-fungible-token-from-one-address-to-another.md)
- [How to burn an existing Non-Fungible Token?](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/l1x-typescript-sdk/l1x-library/other-methods/non-fungible-token-methods/how-to-burn-an-existing-non-fungible-token.md)
- [Endpoints](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/endpoints.md): Explore our Endpoints to access both Mainnet and Testnet RPC services.
- [Configuring MetaMask with L1X Network](https://l1x-sdk.gitbook.io/l1x-developer-interface/interface-essentials/configuring-metamask-with-l1x-network.md): Please note that L1X Native Coin balances are visible on MetaMask but the transfer feature will be activated in Q3 2024. Tokens and Contract calls are possible using MetaMask on L1XEVM.

## Multi-chain with X-Talk

- [Cross Chain Data and Message Passing (XCDP)](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp.md)
- [v1.1 (Latest)](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.1-latest.md)
- [System Overview](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.1-latest/system-overview.md)
- [Your First Cross-Chain dApp with XTalk: A Step-by-Step Guide](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.1-latest/your-first-cross-chain-dapp-with-xtalk-a-step-by-step-guide.md)
- [v1.0 (Legacy )](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy.md)
- [Build your first XCDP - EVM Contract](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/build-your-first-xcdp-evm-contract.md): Step by Step guide and Repository link provided in Templates Section. In this guide we will use Sepolia and bscTestnet to deploy the client chain contracts and L1X TestNet to deploy X-Talk Contract.
- [Build your first XCDP - Solana to EVM Contract and XCDP - EVM to Solana Contract](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/build-your-first-xcdp-solana-to-evm-contract-and-xcdp-evm-to-solana-contract.md): Step by Step guide with detailed process. In this guide we will use Solana devnet, Sepolia and L1X TestNet to deploy X-Talk Flow Contract.
- [Pre-Requisites for Solana](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/build-your-first-xcdp-solana-to-evm-contract-and-xcdp-evm-to-solana-contract/pre-requisites-for-solana.md)
- [X-Talk Swap](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap.md)
- [Pre-Requisites](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/pre-requisites.md)
- [Pre-Requisites for Solana](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/pre-requisites/pre-requisites-for-solana.md)
- [Build your first X-Talk Swap Contract](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/build-your-first-x-talk-swap-contract.md): Step by Step guide and Repository link provided in Templates Section.
- [Hardhat Installation & Deploy Liquidity Provision Contract that integrates with X-Talk Swap](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/build-your-first-x-talk-swap-contract/hardhat-installation-and-deploy-liquidity-provision-contract-that-integrates-with-x-talk-swap.md): Liquidity Provision Contract integrates with X-Talk Swap Contract to provide liquidity for swaps. Liquidity provision contracts are one of the examples of the use case of X-Talk Swaps.
- [Build your first X-Talk Swap Solana to EVM Contract and X-Talk Swap EVM to Solana Contract](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/build-your-first-x-talk-swap-solana-to-evm-contract-and-x-talk-swap-evm-to-solana-contract.md): Step by Step guide with detailed process. In this guide we will use  Solana devnet, Avalanche mainnet and L1X TestNet to deploy X-Talk Flow Contract.
- [Deploy Liquidity Provision Contract that integrates with Solana Swap](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.0-legacy/x-talk-swap/build-your-first-x-talk-swap-solana-to-evm-contract-and-x-talk-swap-evm-to-solana-contract/deploy-liquidity-provision-contract-that-integrates-with-solana-swap.md): Liquidity Provision Contract integrates with X-Talk Swap Contract to provide liquidity for Solana swaps. Liquidity provision contracts are one of the examples of the use case of Solana-EVM Swaps.
- [v1.2 (Beta - Developer Guide)](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.2-beta-developer-guide.md)
- [SimpleMessageTest.sol](https://l1x-sdk.gitbook.io/l1x-developer-interface/multi-chain-with-x-talk/start-building-with-x-talk/cross-chain-data-and-message-passing-xcdp/v1.2-beta-developer-guide/simplemessagetest.sol.md)

## L1X-Swap API Integration

- [Overview](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/overview.md)
- [Architecture Overview](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/architecture-overview.md)
- [Direct Swap API](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/direct-swap-api.md)
- [Postman Collection](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/postman-collection.md)
- [Generating an API Key](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/generating-an-api-key.md)
- [Feedback and Requests](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/feedback-and-requests.md)
- [API Support](https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-swap-api-integration/api-support.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://l1x-sdk.gitbook.io/l1x-developer-interface/l1x-development-architecture-overview.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
