# Stargate Composability

## StargateComposer.sol

StargateComposer is a wrapper contract used to add additional functionality to Stargate Composed calls. Now contracts that want to compose Stargate will need to call `swap` via the [StargateComposer](/stargate/stargate-composability/stargatecomposer.sol.md) contract instead of the [Stargate Router](/stargate/interfaces/evm-solidity-interfaces/istargaterouter.sol.md). The new StargateComposer adds the `msg.sender` into the payload so the destination `sgReceive` can now identify the source address that initiated the swap via the `_srcAddress`.

{% hint style="warning" %}
Composing Stargate will revert on source if not using the StargateComposer.
{% endhint %}

<img src="/files/OVBSzpuMxhZPRakO3Yds" alt="StargateComposed deployed as a wrapper on both source and destination chains" class="gitbook-drawing">


---

# 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://stargateprotocol.gitbook.io/stargate/stargate-composability.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.
