# Building

<figure><img src="https://user-images.githubusercontent.com/37888654/216439039-201a1f7d-7446-4b0e-9003-2c2469db4382.png" alt=""><figcaption><p>Functions: Ship Creation, Sailor Contributions, and NFT Purchases </p></figcaption></figure>

### Ship Creation

Captains walking through the creation flow must input all launch parameters for their NFT strategy (see [here](https://github.com/SZNS/szns-pool-sc/wiki/Glossary#ship-launch-parameters)). These parameters guide the Ship's target NFT collection, the target ETH raise for the Captain to execute their strategy, the fee the Captain takes off of sales, and the period (in days) during which the Fundraise and NFT Purchase can be performed.

### Sailor Contributions

Once created, Sailors are able to begin contributing ETH to the Ship in return for $SHIP. Captains can begin to purchase NFTs as soon as the ETH target has been met. Sailors can continue to contribute ETH past the ETH target until the Ship has Set Sail.

The Captain can Set Sail anytime after the first NFT purchase. Any Sailor can call Set Sail once the Ship Building Period ends.

If no NFTs were bought during the fundraising period or the Ship has failed to raise its target ETH amount, Sailors can Abandon Ship claim their ETH refund.

### NFT Purchases

Only the Captain can begin purchasing after the Ship reaches the predetermined ETH Minimum. Once the goal is reached, Captains can begin purchasing from target collections. The Captain purchases by adding links to listed NFTs in the Sail interface. Invalid links will return an error.

### Set Sail

This function ends the Building period, halts any additional contributions and NFT purchases, and moves the ship into Sailing state.

Captains are able to submit a transaction to "Set Sail" anytime after their first NFT purchase. Once the Ship Building Period ends, anyone can call "Set Sail".


---

# 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.sail.fun/sail-protocol/ships/lifecycle-of-a-ship/building.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.
