> For the complete documentation index, see [llms.txt](https://doc.m-safe.io/aptos/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.m-safe.io/aptos/developers/integrate-with-msafe-dapp/faq.md).

# FAQ

#### Why my application cannot detect MSafe environment / \`MSafeWallet.inMSafeWallet\` returns false?

MSafe wallet itself is a web application. You need to open your application within the MSafe App store. For example for partner endpoint, you may replace `${YOUR_URL}` in the following link to access your application on Testnet.

```
https://testnet.m-safe.io/apps/0?url=${YOUR_URL}
```

#### Upon connecting the MSafe wallet, why application is redirected to MSafe?

To interact with MSafe wallet, application need to talk to the MSafe application in the parent frame. So MSafe wallet adapter will automatically redirect to the MSafe application page if MSafe environment is not detected. This is an automatic bahavior as expected.

#### Why my application cannot connect to MSafe wallet?

1. Make sure you are using the latest MSafe wallet code, and follow the instructions using [MSafe SDK](https://momentum-safe.gitbook.io/momentum-safe/developers/integrate-with-msafe-dapp/use-msafe-wallet-sdk) or [Aptos-wallet-adapter](https://momentum-safe.gitbook.io/momentum-safe/developers/integrate-with-msafe-dapp/use-aptos-wallet-adaptor).&#x20;
2. You are opening your application within the MSafe application. E.g. `https://testnet.m-safe.io/apps/0?url=${YOUR_URL}`.
3. You have created at least one MSafe wallet.

#### Why my UI interface does not show up on MSafe page?

Please check whether you have created at least one MSafe wallet. We will add more prompt for better user experience later.

#### How to tell whether my application works with MSafe?

1. Open your application in MSafe app store with your application's URL. (E.g. <https://testnet.m-safe.io/apps/0?url=${YOUR_URL}>)
2. Connect your wallet, and wallet is connected to MSafe address.&#x20;
3. Submit a transaction within your application, the transaction displays in the transaction queue page.&#x20;
4. After enough signatures are collected, the transaction is submitted on chain.&#x20;
5. If you have created multiple MSafe wallets, switching the address will result in connected wallet address change in your application. Please see [`onAccountChange`](https://momentum-safe.gitbook.io/momentum-safe/developers/integrate-with-msafe-dapp/use-msafe-wallet-sdk/account-change-event) for details.

#### Why \`signAndSubmit\` does not resolve the promise?

In multi-sig use case, `signAndSubmit` is the wallet manager submitting the transaction proposal for MSafe wallet. The transaction with the application's logic can only be executed after collecting enough signatures from the MSafe managers, which will take days to finish. Thus, in the current implementation,  `signAndSubmit` transaction will not be resolved.&#x20;

#### Is there any improvements for better user experience?

Yes.&#x20;

We suggest automatically detect and connect MSafe wallet so that user does not need to connect wallet and select MSafe manually.

Please check out <https://app.m-safe.io/apps/Tortuga> for example.


---

# 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 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://doc.m-safe.io/aptos/developers/integrate-with-msafe-dapp/faq.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.
