This popular Thai street food is also the easiest doughnut recipe! (Or more like doughnut holes?) No yeast, no kneading, no proofing, yet they still have that yummy chewiness and airiness we all love in doughnuts. Called kai tao in Thai, these were a staple of my childhood, and thankfully, I can recreate that memory easily at home today. They're traditionally deep fried, but I've also come up with an air frying method that works quite well. They are naturally vegan, and can be made gluten free without any compromise!

Cultural Context: Kai Tao in Thailand
In Thai, these chewy snacks are called kai tao ไข่เต่า, which means "turtle eggs," but some people call them kai nok grata ไข่นกกระทา which means quail eggs. I grew up calling them kai tao, and they look much more like turtle eggs anyway! It's a very popular snack sold most commonly by street carts and at open air markets, and they're often sold alongside our popular fried bananas. You won't find them in restaurants!
They are made using sweet potatoes, and back in the day we only had orange or white sweet potatoes, but nowadays you can get purple ones made from purple sweet potatoes. Some people also mix in some taro in addition to sweet potatoes.
I used to eat them almost daily because my elementary school cafeteria sold them 5 pieces for 1 baht, which I thought it was a great deal even back then! Now, I'm pleased to share my childhood memory with you!
Ingredients and Important Notes
Here's everything you'll need and important notes about them. Please read carefully about the sweet potato choice as that will affect the recipe greatly! For amounts, see the full recipe card below.
- Sweet potato. You can use any kind of sweet potato as long as they're not too moist. Thai sweet potatoes are typically on the drier side, but many of the ones available here are super wet. If the potato has too much water, you'll have to add more flour than the recipe calls for, which is not a deal breaker, but it's going to need some adjustments, which I'll guide you through. I find the orange-flesh ones sold as "garnet yams" or "jewel yams" are too moist for this, so avoid those. Purple sweet potatoes are often on the drier side and tend to work better, as are the white flesh sweet potatoes. Unfortunately, you won't know if they're dry or moist until they are cooked, but not to worry, I'll provide guidance so you'll be successful either way!
- Tapioca starch, this is the main starch for the doughnuts, and the starch responsible for the satisfying chewiness I love so much about them.
- All-purpose flour (optional) Not everyone adds all-purpose flour, but I find that it softens the chewiness of the tapioca starch a bit, which is nice. If you want to make them gluten-free, substitute more of the tapioca starch instead.
- Sugar. You can adjust the amount of sugar depending on the sweetness of the potatoes.
- Salt.
- Baking powder, adds a little airiness to them as they fry.
- Coconut milk. You may or may not need this. Ideally, your sweet potato will be dry enough that you have room to add some coconut milk because it provides a nice flavour, but if your potatoes are already too moist, then you won't need any added liquid.
- Frying oil. You will need enough oil to have about 1-inch of oil in the pot you're going to use to fry. If you don't want to deep fry, you can also air fry them.
Step By Step
Here's an overview of what you'll need to do. If it is your first time, I highly recommend watching the video tutorial first to ensure success. For the full recipe, see the recipe card below!

- Peel and cut the sweet potato into 1-inch dice and steam them for 10-15 minutes until they are completely tender. A fork should go in with no resistance. Do not boil them, we want to avoid making them too wet.

- Mash the sweet potato thoroughly with a fork until smooth.

- Put the potato in a mixing bowl and add sugar and salt and stir until the sugar is well mixed. If you're potato is very sweet to start, you can add less sugar if you wish.

- Add the flour and work it in with a spoon. Try your best to incorporate all the dry flour into the potato. If you're finding it difficult because it is too dry...go to the next step. If you can incorporate all the flour but the dough is wet and sticky, add more of the flour until the dough is no longer sticking to your hand when you try to roll a ball. Then proceed to step 6.

- If the dough is too dry and you're having a hard time getting all the dry flour incorporated into the potato, add the coconut milk, 1 tablespoon at a time, until you have a dough that is soft but does not stick to your hand when rolled.

- This is the dough consistency you're aiming for. Soft, but you can handle it easily without it sticking to your hands. AND, when you roll it into balls, the ball can retain its shape without sagging or drooping when placed on a plate.
Note: If you had to add a bunch of flour to get it to this consitency, taste a bit of the dough as you may need to add a little more sugar and salt (raw flour, I know, you'll be fine it's just a little taste).

- Use a teaspoon and scoop up a heaping teaspoon of dough and roll them into balls. The ones I made are about ¾ inch in diameter, but it is okay if they're a little bigger than this.

- Add your frying oil to a pot and make sure it's at least 1 inch deep as you'll want the balls to be able to be submerged completely. Heat it to 325°F (160°C). Add the ball, one at a time while stirring because they will initially sink, and if you don't stir right away they'll get a burnt patch while they're sitting at the bottom.
Stir the doughnuts constantly so they brown evenly, and fry for 5 minutes at minimum until they are deeply browned and crisp on the outside.

- Once they have fried for at least 5 minutes and are deeply browned all over (we don't want light brown here), you can remove them from the oil.
To air fry, Spray or brush the doughnuts with oil, then air fry them at 375°F (190°C) for 8 minutes. Shake the basket to roll them around and if they still have more room to brown, air frying them for another 2-3 minutes or until well browned all over. Each air fryer is different, so your timing may differ. They won't brown as evenly as deep fried ones, but they'll still be tasty.

- Scoop them out with a wire skimmer and place them on a paper towel lined plate. Roll them around right away to absorb as much of the surface oil as possible. Let cool for a few minutes or you'll burn yourself, but eat them while they're still warm and crunchy! They don't keep well, but if they've gone soggy, they can be reheated in the air fryer for a few minutes.
Advance Prep Tips & Reheating
These sweet potato doughnuts are street food, which means they're meant to be eaten right away after they're cooked (after they've cooled down a bit of course!), so I recommend frying them right before you want to serve. The good news is that the dough can be made in advance and kept in the fridge for up to 2 days, in a well sealed container, so you can fry them up whenever you're ready to eat!
Reheating: If you've fried too much and you can't finish them all in one sitting, they will go soggy and won't taste as good. If this happens, you can air-fry them for about 3 minutes at 350°F (180°C), or if you haven't put the oil away, you can re-fry them in the same oil at 350°F for 1-2 minutes.
Save this recipe!
Watch The Full Video Tutorial!
All my recipes come with step-by-step video tutorials with extra tips not mentioned in the blog post, so make sure you watch the video below to ensure success - and if you enjoy the show, please consider subscribing to my YouTube channel. Thank you!
Recipe
Print
Thai Sweet Potato Doughnuts (No Yeast)
- Prep Time: 10 mins
- Cook Time: 40 mins
- Total Time: 50 minutes
- Yield: About 35 bite-sized balls
- Category: Dessert, Snack
- Method: Frying
- Cuisine: Thai
- Diet: Dairy-Free, Gluten-Free, Vegan
Description
A popular Thai street food that is very easy to make at home! These chewy sweet potato doughnuts were a staple of my childhood, and I make them for my son today. Air fryer method is provided if you want to skip the frying!
Ingredients
Save this recipe!
- 200 g sweet potato (peeled weight, see note)
- 2 ½ Tbsp (37.5 ml) granulated sugar (you can add more or less depending on the sweetness of your potato)
- ¼ tsp table salt
- 30 g tapioca starch, you may need a bit more so have extra ready
- 15 g all-purpose flour (optional, sub equal weight of tapioca starch if you want to make them gluten-free)
- ¼ tsp baking powder
- 1-3 tablespoon coconut milk
- Frying oil, as needed
Instructions
Tip: You can make this dough in advance, and keep in the fridge until ready to fry. You can roll the balls in advance too, but make sure you keep the dough in a well-sealed container so they don't dry out.
- Peel and cut sweet potato into chunks and steam them until fully cooked, 10-15 minutes. Pierce the biggest piece is a fork and it should go in with NO resistance. Do not boil them, we want to minimize the moisture of the sweet potato! Transfer the potatoes on to a plate and mash with a fork until smooth. Let it cool to room temp.
- Transfer cooled mashed sweet potato to a mixing bowl, add 2 tablespoons of sugar and salt then stir until combined and the sugar is dissolved. You can give it a taste, and if you want it to be a little sweeter and add more sugar - this will depend on the sweetness of the potato itself.
- Add tapioca starch and flour, then sift in baking powder, then stir everything together, trying to get all the dry flour to be absorbed into the dough. This is the tricky part where you need to use your judgment based on how moist your dough is currently, which will vary depending on your particula potato: If the dough is too dry and you're having a hard time getting all the flour to be absorbed, add the coconut milk, 1 tablespoon at a time, until you can work in all the dry flour. Don't add too much coconut milk all at once or you might end up with a dough that is too wet. The goal is to end up with a dough that can be easily formed into balls without sticking to your hand.
If all the flour has been absorbed and the dough is still very soft and sticky, you need to add more tapioca starch and flour at an approximate ratio of 2 to 1. So add roughly 2 teaspoons of tapioca starch, and 1 teaspoon of flour and work it in. Keep adding the flours until you have a dough that does not stick to your hands and can be formed into balls that hold their shape. - Once your dough is ready, scoop up a heaped teaspoon worth of dough (as in a measuring teaspoon, not your dessert spoon), and roll them into balls, about ¾ of an inch in diameter. Place them on a plate. If not ready to fry right away, cover them with plastic wrap, or put in a sealed container and you can refrigerate for up to 2 days.
- In a medium pot you're using to fry, add about 1 inch of frying oil. The oil needs to be deeper than the diameter of your balls because you want to make sure the balls can be completely submerged.
- Deep frying method: Heat the oil to 325°F (160°C), add the balls and stir them as soon as they go in—they will sink to the bottom in the beginning and if you don't stir them soon enough they will develop a brown patch where they touch the bottom of the pot.
- Keep stirring them, and eventually they will float, and once they float make sure you keep stirring them around so that they brown evenly. Let them fry for a full 5 mins, even if they colour has turned golden, in order to give them time to develop a crisp crust. Keep your temp around 325°F or they could brown too quickly.
Note: If after 5 minutes of frying they're still not brown enough, your heat is too low. Crank the heat to high and get them browned faster. - Once done, scoop them up with a wire skimmer, shake off excess oil, then place them on a paper-towel lined plate. Immediately put another piece of paper towel on top and roll them around in between two sheets of paper towel to absorb surface oil. Transfer on to a rack to let them cool slightly.
- Air frying method: Spray or brush the doughnuts with oil, then air fry them at 375°F (190°C) for 8 minutes. Shake the basket to roll them around and if they still have more room to brown, air frying them for another 2-3 minutes or until well browned all over. Note: Each air fryer is different, so your timing may differ.
- Serve these once they're cool enough to eat, they're only good when eaten fresh! These do not keep well, so only fry as much as you can eat. However, you can reheat cold doughnuts in the air fryer at 350°F for about 3 minutes or until they are crisp on the exterior again.
Notes
- Weigh the potatoes after they have been peeled. Any type of sweet potato will work as long as it's not too wet. So the orange-flesh yams often called "jewel yams" or "garnet yams" are not ideal for this because they make the dough too wet. Take note of the texture of the sweet potato in the video when it's mashed, if your sweet potato looks kind of like that OR dryer, it will work fine. You can also sub 50% taro too 🙂








Christine Teoh says
This is a very popular snack as I come from northern Malaysia. We visit Haadyai often n I’m very familiar with the Thai foods.
Thanks Pailin for bringing back my childhood memories.
Heidi says
We just came back from a holiday in Thailand and had these at the night markets. Wondering if these can be made in an air fryer?
Marianne says
Delicious! I've tried the recipe a few times and didn't need to add sugar. Once I made this recipe with an orange-flesh sweet potato; instead of steaming, I microwaved it and let it cool down, which evaporated some of its water. No coconut milk in this case, the sweet potato had enough liquid by itself!
I've been trying to experiment with dipping sauces for these bites; I've tried soy sauce and chili oil and it was good. Any other recommendations?
Stephen Chan says
A street food that is so simple yet delicious, so glad I can make it at home!