> For the complete documentation index, see [llms.txt](https://theluckyducks.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://theluckyducks.gitbook.io/docs/races/joining-and-playing.md).

# Joining and playing

Taking a slot in someone else's race, with eligibility, boosts, cosmetics, withdrawing and claiming.

The race list updates live, newest at the top. Each card carries the entry fee, prize pool, slots taken and duration. Icons in its header show what the race adds. Hover one to name it, or tap the row of them on a card to open a sheet that explains each in words:

* 🎁 sponsored: joining costs nothing
* ✅, 📋 or 👛, who may join: verified players, an allow list, or holders of an NFT or token. A holder gate shows the collection's or token's own icon when it has one.
* 🐣 a minimum account age
* 🔊 AI commentary
* 𝕏 announced on X
* ▶ can start short of a full lobby
* ⚡ boosts accepted, or 🚫 on a sponsored race, which refuses them
* 💰 the race feeds [the jackpot](/docs/competition/jackpot.md)

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-e4cf26af46a428b612d3636781c0287e0dd57ff7%2Fapp-race-features-sheet-banner.png?alt=media" alt="The sheet a race card opens, naming each of the race&#x27;s features in a sentence"><figcaption><p>Every mark on the card, in words. A phone has no hover, so the row is a button.</p></figcaption></figure>

A custom track shows as the card's background. Bottom left is the race's creator: hover or tap their avatar for their name and wallet.

## Joining

Tap Join on a race card, or open the race and tap Join there. Either way the join dialog opens, with the race at the top, a Boost tab listing the Boost NFTs in your wallet and a Duck tab listing your cosmetics. Pick what you want to bring, sign, and your duck takes its slot.

{% columns %}
{% column width="70%" %}

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-93759529eb2c193dc7def3650dc8a1ab65a198d1%2Fapp-race-detail-modal-desktop.png?alt=media" alt="The race modal for a lobby you have joined, with its prize pool, seats taken, entry fee and duration"><figcaption><p>A lobby you are in: the pool, the seats, the fee and the duration.</p></figcaption></figure>
{% endcolumn %}

{% column width="30%" %}

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-6779bb3b672d84569121143f8d33dec2f7aa33b3%2Fapp-race-detail-modal-mobile.png?alt=media" alt="The race modal for a lobby you have joined, with its prize pool, seats taken, entry fee and duration, on a phone"><figcaption><p>On a phone</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

The confirmation asks where the entry fee comes from: your wallet, or a balance you pre-funded. See [Your player vault](/docs/economy/player-vault.md). With [playing without signing every action](/docs/races/delegated-play.md) on, joining is one tap and no wallet popup appears at all.

### Eligibility

Some races ask for more than the entry fee, and the modal spells out whatever applies:

* **Verified only.** Wallets that have completed [verification](/docs/trust-and-fairness/verification.md).
* **Allowlist (invite only).** Only the wallets the creator invited. Off the list, Join stays disabled and the modal says the race is invite only.
* **NFT Holders.** A minimum number of NFTs from a chosen collection, both shown so you can check at a glance. Your holding is checked when you join. If the collection lives on another chain, the check runs against the external wallet linked to your profile, and the join flow sends you to link one first if you have not.
* **Token Holders.** A minimum amount of a chosen token, which need not be the race's prize token.
* **Minimum account age.** A player account at least a certain age. A brand new account created during the join transaction is always too young, and the modal says so rather than failing silently.

[Race access and gating](/docs/races/access-and-gating.md) is the full reference, with the limits each gate carries.

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-4987b043f9f7d7d52af3c9ef33d4bdbf9118c109%2Fapp-gated-race-join-disabled-banner.png?alt=media" alt="A gated race with Join disabled and the requirement stated above it"><figcaption><p>Whatever a race asks for, the modal says it before you sign.</p></figcaption></figure>

### NFT boost selection

Hold any Boost NFTs and you can pick one, adding a small percentage to your duck's speed for that race. Boosts are never consumed, so the same one works in every race you join. See [Boost NFTs](/docs/nfts/boosts.md).

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-d382f0e4fc11624e24f0122f514e52a58716052c%2Fapp-boost-picker-banner.png?alt=media" alt="The boost picker in the join modal, each boost showing its percentage"><figcaption><p>One boost per race, and it is never consumed.</p></figcaption></figure>

### Cosmetic selection

Cosmetics change how your duck looks, picked from the cosmetic tab. Own none and your duck races in default plumage. They are visual only and change no outcome.

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-ed871320c783b020592f4234b04487b160222819%2Fapp-cosmetic-picker-banner.png?alt=media" alt="The cosmetics tab in the join modal with one skin selected and a preview of the duck"><figcaption><p>Visual only, and it changes nothing a race decides.</p></figcaption></figure>

### Your Runner NFT

Nothing to pick, and nothing to switch on. Joining never needs a Runner, and if you hold one the app reads it from your connected wallet by itself, which is what raises your [daily race allowance](/docs/races/daily-races.md). There is no control for it in the join modal because there is no choice to make. See [Runner NFTs](/docs/nfts/runners.md).

## During the lobby

The modal stays open while the lobby fills, and participants appear as they join with their avatar, nickname and any NFT badges.

{% columns %}
{% column width="70%" %}

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-1ecad85972031e67d4aa97e3c691a13006685917%2Fapp-lobby-participants-desktop.png?alt=media" alt="The race modal while the lobby fills, participants listed with avatars, nicknames and NFT badges"><figcaption><p>Players appear as they join, and the modal stays open throughout.</p></figcaption></figure>
{% endcolumn %}

{% column width="30%" %}

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-9391ceeadb828c8f51b2b1ca0eb7a942d844fb44%2Fapp-lobby-participants-mobile.png?alt=media" alt="The race modal while the lobby fills, participants listed with avatars, nicknames and NFT badges, on a phone"><figcaption><p>On a phone</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Withdrawing

Changed your mind? Click Withdraw. It is open for a short window after your own join, and it locks for everyone just before the lobby closes. The button carries the time left.

{% hint style="warning" %}
The vault then refunds your full entry fee and charges a small fixed penalty from your wallet, always in SOL even on token races. [Refunds and rent](/docs/economy/refunds-and-rent.md#withdrawal-during-the-lobby) has the windows, the figure and the full rules.
{% endhint %}

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-5549259a9fa104500587addaeffb3755b233a8cb%2Fapp-withdraw-button-banner.png?alt=media" alt="The withdraw button in the race modal with the time left on it"><figcaption><p>Live for 2 minutes after your own join, and dead in the last minute of the window.</p></figcaption></figure>

## When the race starts

The modal gives way to the canvas, after a short loading screen if audio is still generating. The race runs for whatever duration the creator picked, every paddle and somersault driven by the on chain seed.

## After

Finish first in Winner Takes All, or on the podium in Podium Split, and the claim button appears with your payout on it. Click to sign and the money arrives at once, in your wallet by default or in your player vault if you pool your winnings there.

<figure><img src="https://3421471796-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7dtEnU4lv7j0vOpw19z4%2Fuploads%2Fgit-blob-5e6a2e32623fe1e6d80f0d8049e2f2475adaed33%2Fapp-claim-prize-banner.png?alt=media" alt="The post race screen with the payout amount on the claim button and the finishing order beside it"><figcaption><p>The button carries the amount. Where it lands is your own payout setting.</p></figcaption></figure>

Lost? Nothing to do. The race archives itself and the page returns to the lobby list.

{% content-ref url="/pages/kJG5OpI4h0Yibms7dkkR" %}
[Your player vault](/docs/economy/player-vault.md)
{% endcontent-ref %}
