Registration is open!
Buidler Fest tickets are now available. To purchase your Buidler Fest ticket you need to submit a transaction to Cardano mainnet.
Tickets
PURCHASED
60
AVAILABLE
60
Why so complex? 😠I just want my ticket
Buidler Fest is a technical conference — a nerd gathering of sorts. It is customary to have a technical challenge that will grant you safe passage to the event. It's a sacrifice (of time) to keep the Cryptography gods happy.
We know, the challenge for this edition is harder than previous ones, but we think that the best way to improve Cardano is by using it as intended. Although the mechanism is minimalistic, it is a fully functional ticketing system.
Make sure you complete our KYC form to complete the registration once you finish your purchase transaction.
The purchase transaction
Tickets are represented as Cardano native tokens. Each ticket is an NFT associated to a unique, sequential number. The ownership of this NFT is transferred to the buyer when the transaction is submitted.
The ticket NFT is issued by an on-chain script that ensures that ticket tokens are minted according to the rules of the event.
Let's break down the transaction:
Parties
We have 3 parties involved in the transaction:
buyer: You, the one who wants to purchase the ticket.issuer: The script responsible for validating the minting of the ticket NFT.treasury: A holding account that will receive the ADA for all ticket purchases.
Inputs
The transaction takes 2 inputs:
funds: This input represents the funds for the ticket purchase and must contain enough ADA to cover the ticket price and transaction fees.current state: This input contains the current state of the whole registration process (a datum with the current ticket count)
Outputs
The transaction has 3 outputs:
ticket + change: This output contains the minted ticket NFT and whatever change is left over from the payment.new state: This output contains the updated state of the registration process (the same datum with an incremented ticket count)payment: This output contains the ADA for the ticket purchase.
Shared State
The registration process makes use of a shared state to control the minting. There's an inline datum stored at a specific UTxO that holds the value of the total number of already purchased tickets.
Whenever a new ticket is purchased, this UTxO is consumed and a new one is created with a similar datum that holds the incremented number of tickets.
The structure of the datum is the following (using cardano-cli JSON notation):
{
"constructor": "0",
"fields": [
{
"int": "<next ticket number>"
}
]
}
(where <next ticket number> holds the integer value that represents the next ticket to be minted)
To find the specific UTxO that holds the state, we use a "beacon token". This is a unique NFT that allows you to pinpoint the required UTxO within the issuer's address.
Constraints
For the tx to be valid, you need to make sure you comply with all the requirements enforced by the issuer script. These are:
- The transaction must pay the ticket price to the treasury
- The shared state ticket counter must be incremented by exactly
1 - The ascii name of the ticket asset must be
TICKET{x}where{x}is the ticket number - Ticket price must be:
- 400 ADA if submitted before
2026-Feb-01 12:00 UTC - 500 ADA if submitted since
2026-Feb-01 12:00 UTC
- 400 ADA if submitted before
Gotchas
- You'll need to add collateral to your transaction (since it runs scripts)
- You can use a script reference to provide the script (see quick reference below)
- There could be contention of the shared state, make sure you don't have a stale UTxO when sending your Tx.
- You need to specify an upper bound for the validity range, which is used by the script to decide the price value.
- The number of your ticket NFT must be equal to the number in the state datum.
Quick Reference
| Field | Value |
|---|---|
| ISSUERÂ BEACONÂ POLICY | e1ddde8138579e255482791d9fba0778cb1f5c7b435be7b3e42069de |
| ISSUERÂ BEACONÂ NAME | 425549444c45524645535432303236 (hex) |
| TREASURY | addr1qx0decp93g2kwym5cz0p68thamd2t9pehlxqe02qae5r6nycv42qmjppm2rr8fj6qlzfhm6ljkd5f0tjlgudtmt5kzyqmy8x82 |
| ISSUERÂ SCRIPTÂ REF | 31596ecbdcf102c8e5c17e75c65cf9780996285879d18903f035964f3a7499a8#0 |
| TICKETÂ POLICY | 1d9c0b541adc300c19ddc6b9fb63c0bfe32b1508305ba65b8762dc7b |
| ISSUER | addr1wywecz65rtwrqrqemhrtn7mrczl7x2c4pqc9hfjmsa3dc7cr5pvqw |
Getting Help
Tx3 Tutorial
You can use any tool you're familiar with to construct and submit the transaction. The information provided in this page should be enough.
If you want something already working, you clone our tutorial repo and follow the README to purchase the ticket using the Tx3 toolkit.
https://github.com/txpipe/buidler-fest-2026-buy-ticket
TxPipe's Discord
You can join TxPipe's discord using this link:
You'll find that there's a #buidler-fest channel with organizers and other participants to answer any technical or non-technical questions.
Example Transactions
Validator's code
If you want to check any details of the on-chain validation, you can find the Aiken source code in here:
https://github.com/txpipe/buidler-fest-2026-buy-ticket/tree/main/onchain