IOCCC image by Matt Zucker

The International Obfuscated C Code Contest

Entering the IOCCC: the bare minimum you need to know

This quick start guide is version 29.0.0 2025-11-30.

Entering the IOCCC: the bare minimum you need to know

To submit your code to the IOCCC, you MUST follow these steps:

0. Verify that the IOCCC is pending or open for submissions

First, check the “current status of the IOCCC” page to see current contest status. You may only register for the IOCCC when the IOCCC is either pending or open.

You may only register for IOCCC when the IOCCC is pending or open.

You may only submit your entries to the IOCCC when the IOCCC is open.

See also the IOCCC news for more information.

1. Read the latest IOCCC rules and review the IOCCC guidelines

Please pay close attention to the official IOCCC rules.

You are also highly encouraged to review the official IOCCC guidelines as they contain important suggestions, useful hints, and IOCCC humor. :-)

2. Register for the IOCCC

IMPORTANT: You may only register for the IOCCC when the IOCCC is either PENDING or OPEN. See “current status of the IOCCC” page for details.

Follow the directions on “how to register for the IOCCC”.

Register early; don’t wait until it is close to the deadline. The IOCCC Judges are NOT responsible for delays or lost emails.

3. Wait for your submit server username and initial password

After registration, you will receive an email with your UUID username and a temporary password, usually within 2 hours.

System load, maintenance, or service outages may delay registration emails for several hours. In rare instances requiring manual intervention from an IOCCC Judge, delivery could extend to several days.

Once you receive the email with your UUID username and temporary password, please sign in at submit.ioccc.org where you will be asked to change your password.

If you do not update your password within 14 days of receiving the registration email, your account will be deleted and you will need to register again.

4. Login to the submit server and change your password

Using the Username and Initial password you receive via email in step 3, you need to login to the IOCCC submit server.

After registration, you’ll receive an email with your UUID username and temporary password—usually within two hours, but delays up to several days may occur due to system load, maintenance, or outages.

IMPORTANT NOTE: Upon receipt of the email containing your UUID username and temporary password, you are required to log in at submit.ioccc.org using those credentials and update your password. Failure to change your password within 14 days of the registration email will result in account deletion, necessitating re-registration.

Please visit the “change your submit server initial password” page for detailed instructions.

5. Obtain and compile the latest mkiocccentry toolkit

Once the contest is open, download the most recent version of the mkiocccentry toolkit.

IMPORTANT NOTE: While the contest is pending, the mkiocccentry toolkit could change. Once the content is open, be sure you have the latest version installed.

To help you, please see the FAQ on “how to obtain the most recent mkiocccentry”, the FAQ on “compiling mkiocccentry toolkit” and the FAQ on “installing the mkiocccentry tools” for more details.

6. Run the mkiocccentry tool to form your submission tarball

For more details on mkiocccentry, what it is, how to obtain it and how to use it, see the FAQ on “mkiocccentry” (especially the FAQ on “what mkiocccentry is in simple terms, the FAQ on”how to use mkiocccentry“) and the mkiocccentry section in the guidelines.

    mkiocccentry [options] workdir topdir

where:

Three files are required to exist in topdir:

NOTE: Please see our IOCCC markdown guide for important information on using markdown in the IOCCC.

If the mkiocccentry tool indicates that there is a problem with your submission, especially if it identifies a Rule 2 - Size restrictions, or any other rule, related problem, you are strongly encouraged to revise and correct your entry and then re-run the mkiocccentry tool.

If you choose to risk violating Rules, be sure and explain your reason for doing so in your remarks.md file.

See also Rule 17 - Use mkiocccentry!

IMPORTANT NOTE: the tools that require other tools, mkiocccentry(1) and txzchk(1), will, as of version 2.0.2 2025-03-11, search under $PATH. If you have an earlier version and you have not installed the tools and run the tools from outside the repo directory, you will have to use the options to the tools to set the path to the required tools.

Do remember to make sure you have the latest vers chksubmit(1), txzchk(1) and fnamchk(1). And remember to make sure you have the latest version so you do not violate Rule 17 - Use mkiocccentry. See the FAQ on “obtaining the latest mkiocccentry tools”, the FAQ on “compiling the mkiocccentry tools”, the FAQ on “installing the mkiocccentry tools” and the FAQ on “using the mkiocccentry tools” for more help.

See also the FAQ on “what the minimum required versions are for this contest” for more details on how to verify you have the correct versions for this contest.

7. Upload your submission to the IOCCC submit server

NOTE: The IOCCC submit server is ready for submissions ONLY WHEN THE CONTEST IS open.

The screenshots on the “how to upload your submission to the IOCCC” page might be a helpful guide when using the IOCCC submit server.

NOTE: You may modify a previous uploaded submission, if the contest is open, by replacing the file in a slot. Please use the mkiocccentry tool to rebuild the compressed tarball as this will update the timestamps and the filename generated, as well as packaging any changes: making it clear to the IOCCC judges that you intend to replace the older upload.

IMPORTANT NOTE: The IOCCC submit server is ready for submissions ONLY WHEN THE CONTEST IS open.

See the “current status of the IOCCC” page for details on the contest status.

IMPORTANT NOTE: When the contest is closed, the IOCCC submit server might be offline and unreachable as a website.

NOTE: if you do need to update a submission, you might find the FAQ on “how to not have to re-enter information more than once” useful.