> For the complete documentation index, see [llms.txt](https://docs.sail.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sail.fun/sail-protocol/smart-contracts/zodiac-modules.md).

# Zodiac Modules

Zodiac modules are a smart contract built to pass specific transactions to a Gnosis Safe. The Buy and List modules below were built to specify functions around Buying and Listing as standalone actions. These modules could be deployed to add buy and list functions to any Gnosis Safe.

The only contract launched by the Ship factory upon creation is the Ship Module.

### Ship Module

[Github Link](https://github.com/SZNS/szns-pool-sc/blob/main/src/zodiac/modules/ShipModule.sol)

The Ship Module does all of the work for crowdfunding, coordinating the NFT strategy, and providing different functions based on states of Ship development. All other contracts defined in this repo are included in this contract to save gas and provide an efficient experience when launching Ships on Sail.

### Buy Module

[Github Link](https://github.com/SZNS/szns-pool-sc/blob/main/src/zodiac/modules/BuyModule.sol)

The Buy Module allows for a Captain to buy NFTs on behalf of the Ship once the ETH Goal is reached. This purchasing can only occur during the Fundraising Period.

### List Module

[Github Link](https://github.com/SZNS/szns-pool-sc/blob/main/src/zodiac/modules/ListModule.sol)

The list module calls transactions associated with NFT listing. In order to satisfy OpenSea API policies, listing takes a two step process:

1. Send NFT to Ship Module from Ship SAFE
2. Commit transaction to list via the List Module

These two transactions occur simultaneously for the user, but do add some complexity for listing on OpenSea.


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.sail.fun/sail-protocol/smart-contracts/zodiac-modules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
