היה מלך שהיו לו שתים עשרה בנות יפהפיות. הן ישנו בשתים עשרה מיטות, כולן בחדר אחד. כשהלכו לישון, נסגרו הדלתות וננעלו. אבל בכל בוקר מצאו שהנעליים שלהן שחוקות לגמרי, כאילו רקדו בהן כל הלילה. ואף אחד לא הצליח לגלות איך זה קורה, או איפה הן היו.
אז הודיע המלך בכל הארץ, שמי שיגלה את הסוד, וימצא איפה הנסיכות רוקדות בלילה, יקבל לאישה את זו שהכי תמצא חן בעיניו, ויהיה מלך אחרי מותו. אבל מי שינסה ולא יצליח אחרי שלושה ימים ושלושה לילות, ייענש בעונש מוות.
מהר מאוד הגיע בן מלך. קיבלו אותו יפה, ובערב לקחו אותו לחדר שליד החדר שבו ישנו הנסיכות בשתים עשרה המיטות שלהן. שם היה עליו לשבת ולראות לאן הן הולכות לרקוד. וכדי שלא יחמיץ שום דבר, השאירו את הדלת של החדר שלו פתוחה.
אבל בן המלך נרדם מהר, וכשהתעורר בבוקר, ראה שהנסיכות רקדו, כי בסוליות של הנעליים שלהן היו חורים. אותו דבר קרה בלילה השני ובלילה השלישי, והמלך ציווה להעניש אותו. אחריו באו עוד כמה, אבל לכולם היה אותו מזל, וכולם איבדו את חייהם באותה דרך.
והנה, במקרה עבר בארץ של המלך הזה חייל זקן, שנפצע בקרב ולא יכול היה להילחם יותר. כשעבר ביער, פגש אישה זקנה, ששאלה אותו לאן הוא הולך.
"אני בקושי יודע לאן אני הולך, או מה כדאי לי לעשות," אמר החייל. "אבל אני חושב שהייתי רוצה לגלות איפה הנסיכות רוקדות, ואז, עם הזמן, אולי אהיה מלך."
"טוב," אמרה הזקנה, "זו לא משימה קשה במיוחד. רק תיזהר לא לשתות מהמשקה שאחת הנסיכות תביא לך בערב. וברגע שהיא תעזוב אותך, תעמיד פנים שאתה ישן עמוק."
אחר כך היא נתנה לו גלימה ואמרה: "ברגע שתלבש אותה, תהפוך לבלתי נראה, ותוכל ללכת אחרי הנסיכות לכל מקום שהן הולכות." כשהחייל שמע את כל העצות הטובות האלה, הוא החליט לנסות את מזלו. הוא הלך למלך ואמר שהוא מוכן לקבל על עצמו את המשימה.
קיבלו אותו יפה כמו את האחרים, והמלך ציווה לתת לו בגדי מלכות מפוארים. כשהגיע הערב, הובילו אותו לחדר החיצוני. בדיוק כשעמד לשכב, הביאה לו הנסיכה הבכורה כוס משקה. אבל החייל שפך אותה כולה בסתר, ונזהר לא לשתות אפילו טיפה. אחר כך שכב על המיטה, ואחרי זמן קצר התחיל לנחור בקול רם, כאילו הוא ישן עמוק.
כשתריסר הנסיכות שמעו את זה, הן צחקו מכל הלב. הבכורה אמרה: "גם הבחור הזה היה יכול לעשות משהו יותר חכם מלאבד את חייו ככה!"
אז הן קמו, פתחו את המגירות והתיבות, והוציאו את כל הבגדים היפים שלהן. הן התלבשו מול המראה, וקיפצו מסביב כאילו לא יכלו לחכות להתחיל לרקוד.
אבל הצעירה אמרה: "אני לא יודעת למה, אבל בזמן שאתן כל כך שמחות, אני מרגישה לא טוב. אני בטוחה שמשהו רע יקרה לנו."
"טיפשונת," אמרה הבכורה, "את תמיד מפחדת. שכחת כמה בני מלכים כבר שמרו לשווא? ולגבי החייל הזה, גם אילו לא הייתי נותנת לו את משקה השינה, הוא היה ישן עמוק בכל מקרה."
כשכולן היו מוכנות, הן הלכו והסתכלו על החייל. אבל הוא המשיך לנחור ולא הזיז יד או רגל, אז הן חשבו שהן בטוחות לגמרי. הבכורה ניגשה למיטה שלה ומחאה כפיים, והמיטה שקעה ברצפה, ודלת סתרים נפתחה.
החייל ראה אותן יורדות דרך דלת הסתרים, אחת אחרי השנייה, כשהבכורה מובילה. הוא חשב שאין לו זמן לבזבז, קפץ, לבש את הגלימה שנתנה לו הזקנה, והלך אחריהן.
אבל באמצע המדרגות הוא דרך על השמלה של הנסיכה הצעירה, והיא קראה לאחיותיה: "משהו לא בסדר! מישהו תפס לי את השמלה!"
"טיפשה!" אמרה הבכורה. "זה רק מסמר בקיר."
אז כולן ירדו, ולמטה מצאו את עצמן בחורשה נפלאה של עצים. כל העלים היו עשויים כסף, והם נצצו והבהיקו ביופי. החייל רצה לקחת איזה סימן מהמקום, אז הוא שבר ענף קטן, ומהעץ נשמע רעש חזק.
הבת הצעירה אמרה שוב: "אני בטוחה שמשהו לא בסדר. לא שמעתן את הרעש הזה? זה אף פעם לא קרה קודם."
אבל הבכורה אמרה: "זה רק הנסיכים שלנו, שצועקים משמחה כי אנחנו מגיעות."
אחר כך הגיעו לחורשה אחרת, שבה כל העלים היו מזהב, ואחר כך לחורשה שלישית, שבה כל העלים היו יהלומים נוצצים. החייל שבר ענף מכל אחת, ובכל פעם נשמע רעש חזק, שגרם לאחות הצעירה לרעוד מפחד. אבל הבכורה עדיין אמרה שזה רק הנסיכים, שצועקים משמחה.
כך הן הלכו עד שהגיעו לאגם גדול. על שפת האגם עמדו שתים עשרה סירות קטנות, ובהן שנים עשר נסיכים נאים, שנראה שחיכו לנסיכות.
כל נסיכה נכנסה לסירה אחרת, והחייל נכנס לאותה סירה עם הצעירה. כשחתרו על פני האגם, אמר הנסיך שישב בסירה עם הנסיכה הצעירה והחייל: "אני לא יודע למה, אבל אף שאני חותר בכל הכוח, אנחנו לא מתקדמים מהר כמו תמיד, ואני עייף מאוד. הסירה נראית כבדה מאוד היום."
"זה רק בגלל החום," אמרה הנסיכה. "גם לי חם מאוד."
בצד השני של האגם עמדה טירה מפוארת ומוארת, וממנה בקעה מוזיקה עליזה של קרניים וחצוצרות. שם כולם ירדו מהסירות ונכנסו לטירה, וכל נסיך רקד עם הנסיכה שלו. והחייל, שכל הזמן היה בלתי נראה, רקד איתם גם. וכשהניחו ליד אחת הנסיכות כוס משקה, הוא שתה את כולה, כך שכשהיא קירבה את הכוס לפה, הכוס הייתה ריקה. גם מזה האחות הצעירה נבהלה נורא, אבל הבכורה תמיד השתיקה אותה.
הן רקדו עד שלוש לפנות בוקר, ואז כל הנעליים שלהן נשחקו, והן נאלצו להפסיק. הנסיכים חתרו איתן בחזרה על פני האגם, אבל הפעם החייל ישב בסירה עם הנסיכה הבכורה. על החוף השני הם נפרדו, והנסיכות הבטיחו לבוא שוב בלילה הבא.
כשהגיעו למדרגות, החייל רץ לפני הנסיכות ושכב במיטה. וכששתים עשרה האחיות עלו לאט, עייפות מאוד, הן שמעו אותו נוחר במיטה שלו, ואמרו: "עכשיו הכל בטוח לגמרי." הן התפשטו, החביאו את הבגדים היפים, חלצו את הנעליים והלכו לישון.
בבוקר החייל לא סיפר כלום על מה שקרה, אבל החליט לראות עוד מההרפתקה המוזרה הזאת. הוא הלך שוב בלילה השני ובלילה השלישי, והכל קרה בדיוק כמו בפעם הראשונה. הנסיכות רקדו בכל פעם עד שהנעליים שלהן נקרעו לגמרי, ואז חזרו הביתה. אבל בלילה השלישי לקח החייל איתו את אחת מכוסות הזהב, כסימן למקום שבו היה.
כשהגיע הזמן לגלות את הסוד, הביאו אותו לפני המלך, עם שלושת הענפים וכוס הזהב. שתים עשרה הנסיכות עמדו מאחורי הדלת והקשיבו, כדי לשמוע מה הוא יגיד.
המלך שאל אותו: "איפה רוקדות שתים עשרה הבנות שלי בלילה?"
והוא ענה: "עם שנים עשר נסיכים, בטירה מתחת לאדמה." ואז סיפר למלך את כל מה שקרה, והראה לו את שלושת הענפים ואת כוס הזהב שהביא איתו.
המלך קרא לנסיכות, ושאל אותן אם מה שהחייל אומר נכון. וכשהן ראו שהסוד התגלה, ושאין טעם להכחיש, הן הודו בהכל.
המלך שאל את החייל את מי מהן הוא רוצה לאישה. והוא ענה: "אני כבר לא צעיר במיוחד, אז אקח את הבכורה." והם התחתנו עוד באותו יום, והחייל נבחר להיות יורש העצר של המלך.