# Bastion

Bastion is a modular, lightweight, open-source account abstraction SDK that allows you to integrate decentralized wallet functionality into your applications easily. It is a fully ERC4337-compatible TypeScript SDK, which ensures type safety. It abstracts away blockchain complexity, enabling seamless integration of multi-chain wallets.

With Bastion, users can securely store assets from different blockchains in a unified interface. The SDK handles all blockchain interactions in the background, providing a simplified developer experience.

Key features of Bastion include:

* Support for major Layer 1 and 2 chains like Ethereum, Polygon, Optimism, Arbitrum, Scroll and Taiko. Easily expandable to additional chains.
* Unified accounts and key management across multiple chains using counterfactual addresses.
* Abstraction of protocol differences so developers don't need blockchain expertise.&#x20;
* Modular design allows easy swapping of components like key management and data storage. Customize to your needs.
* Built-in support for multi-signature wallets, social recovery, and other advanced features.

Bastion handles onboarding, transactions, NFT and token support, staking, messaging, and more across blockchains in one holistic package. It lets you focus on your product while Bastion manages the blockchain complexity.

The SDK is open source, allowing complete transparency. Customize, audit, and extend Bastion to build the most secure, scalable web3 products.

* **GitHub repo -** <https://github.com/bastion-wallet/sdk>
* **NPM package -** <https://www.npmjs.com/package/bastion-wallet-sdk>

Get started building the future of multi-chain crypto applications with Bastion today!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bastionwallet.io/bastion-sdk/introduction/bastion.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.
