A practical guide to how Knots work, how they don't, and every way you can interact with the contracts.
Each purchase mints a sequential NFT (1, 2, 3, …), routes ADA on-chain according to fixed ratios, assigns the current prize-eligibility to the latest buyer, and extends a countdown. If the timer ever reaches zero, the last buyer can withdraw the prize.
Each purchase updates shared state and returns a newly minted, numbered NFT to the buyer. The shared state thread token lives at the Oracle script and its datum includes the current count, the current winner, and value routing information used to enforce outputs match configuration.
If no new purchases occur until the timer elapses, the recorded winner can withdraw the pot.
Spend the Oracle input and mint one new NFT with the next number. The transaction must route treasury_price, pot_price, and fee_price to their respective addresses and update the Oracle datum with the new count and winner.
Burn an owned NFT to withdraw a pro-rata share from the treasury according to the configured rules. The burn checks the NFT number against the current count and uses a divisor rule to constrain how many early exits can occur at a time. A reference to the Oracle datum is required.
When the current slot is beyond slot_start + count × slot_increase, the recorded winner can withdraw the pot from the pot script. The transaction must prove the winner's signature.
List and sell NFTs through the marketplace script. On Buy, the seller receives the agreed price and the marketplace owner receives the configured fee. Sellers can cancel their own listings.
The data structures that define the state and actions within the Knot system. Datums hold the current state information, while redeemers specify the actions that can be performed on each validator.
The central state container that tracks the game progress, including the current count, winner, timer values, and economic parameters. This datum is updated with each NFT purchase.
Defines the actions that can be performed on the Oracle validator, primarily minting new DS NFTs when users purchase participation.
Contains listing information for NFTs being sold on the secondary market, including seller address, price, and token details.
Controls the two main marketplace operations: purchasing listed NFTs and closing/canceling listings.
Enables early exit withdrawals from the treasury when users burn their eligible NFTs, allowing them to claim their locked ADA.
Allows the current winner to claim the prize pool after the timer expires, providing the final incentive for the last participant.
Helper functions and types for managing the DS NFT minting and burning logic, including game mode validation and mint polarity definitions.
Deployers mint a single Oracle NFT to authorize the Oracle script. This requires spending a specific UTxO referenced in the parameters, ensuring the NFT is one-per-deploy.
A knot maintains its participation count using a state-threaded token (STT) initialized with a datum count of 1. During each new NFT minting process, validation rules require incrementing this by 1. The count is used as the asset name for the newly minted NFT, which is returned to the buyer. This mechanism ensures a verified, ordering of participants while storing minimal information on-chain and affording buyers maximum flexibility.
1 NFT = Count + 1
No. All economic parameters are fixed at deploy time.
When the timer reaches the derived deadline, the current winner can withdraw the pot.
Timer will continue to grow each mint, there is no upper limit on how far it can extend into the future.
The countdown timer is configurated before deployment, and starts counting down immmediately. When someone buys an NFT, the timer extends by adding the slot_increase value. If buying outpaces the timer will continue to grow. If buying fails to keep pace the timer will count down until zero, unlocking the pot value to whomever bought the last NFT.
No, its impossible to predict how the market will behave. Knots let you prepare for growth, so that if it does happen, there is roi available to some members not all, but it hinges on future growth which is impossible to predict, similar to all markets.
Yes, potential value is stored within the NFT, and awarded to the wallet who burns it, not the wallet who minted it. Use your favorite secondary market or use the Knots marketplace path to list, sell, or transfer NFTs.
The treasury script validates NFT numbers and a divisor rule relative to the current count, ensuring controlled and fair early exits relative to the total number of NFTs minted.
Each valid purchase contributes the configured pot_price to the pot. Over time, pot balance ≈ previous pot + pot_price × number of completed purchases − any prior withdrawals. Fees and treasury routing do not reduce the pot.
Always the latest buyer recorded in the Oracle datum. A new purchase immediately replaces the previous winner and extends the timer.
The total ADA you send is split on-chain into three buckets: treasury_price, pot_price, and fee_price. These immutable amounts are defined at deployment.
You receive a newly minted, numbered NFT sent to your wallet (asset name = current count). You also become the current winner and the countdown is extended. The NFT can be held, sold, or—when eligible—burned to withdraw a pro‑rata share from the treasury. If the timer reaches its deadline while you are still the winner, you can withdraw the pot. No ADA returns to you at purchase time beyond the NFT and these rights.
Eligibility is enforced by the Treasury validator and DS NFT policy. In brief, lower-numbered NFTs become eligible based on the current count and a divisor rule which throttles how many can exit at once. The burn must reference the Oracle datum, and the asset name must be a valid number that is under the threshold calculated from count / divisor.
Growth is required post minting for new NFTs to become eligible to burn.
Early‑exit eligibility is enforced by the Treasury validator's divisor rule relative to the current count. Lower‑numbered NFTs unlock first, and higher‑numbered (newer) NFTs unlock last. When you buy, your NFT has the highest number, so it starts farthest from eligibility. As more purchases occur (the count increases) and earlier numbers burn, your NFT moves closer to eligibility. You can still sell your NFT at any time via the marketplace.
No. There are no privileged controls post-deploy. The system cannot be paused or upgraded; state only changes through user transactions that satisfy validator rules.
Buyers cannot alter rules. They can only become the winner by performing a valid purchase that routes funds and updates the datum. The next buyer can always replace them by buying before the timer ends.
Use a Cardano wallet with dApp connector support. The UI builds transactions with the correct script inputs, reference data, mint/burn actions, and redeemers.
No. The pot withdrawal checks the Oracle datum winner and the timer condition. The winning signature is required; the NFT is not.
In the UTxO model, only one transaction can spend the exact Oracle input first. The other must rebuild against updated state and try again.
Easy mode will prevent new buying if the timer is reached. Normally buying is never restricted thus the process of spending pot value is done under competition, making it much more difficult to claim all value. Easy mode lets the winner spend the pot at their leisure. Contributed by @gulla0
Entering early gives access to burn-based exits when eligible, at deterministic values. Liquidity comes from the treasury path and secondary markets.
Waiting risks being outbid by the next buyer, but the prize grows predictably with each purchase. Optimal timing depends on your view of flow and attention.