Fresh Homemade Soy Milk (Stovetop or Instant Pot) - Earth to Veg
Home » Asian Cuisine » Chinese Cuisine » Fresh Homemade Soy Milk (Stovetop or Instant Pot)

Fresh Homemade Soy Milk (Stovetop or Instant Pot)

Soy milk was first invented in China as early as the first century AD. Now, it’s completely mainstream and remains one of the most popular non-dairy milks in the world. As someone who grew up on Homemade Soy Milk, I still think it’s the best plant beverage of all! Drink soy milk on its own, ferment it into Vegan Yogurt, use it to make treats like Taro Bubble Tea or Banana Chocolate Chia Pudding, or substitute it for dairy milk in any recipe.

homemade soy milk in a glass jar next to a glass pitcher, with some soybeans on the tabletop.

Soybean–Soy Milk Conversions

This section is for those of us who love the numbers. Here is the basic conversion formula which you can use to make the perfect amount of soy milk you need:

1 cup dried soybeans (180g) = 2⅔ cup soaked soybeans (400g) + 8 cups water (1920g) = 8 to 9 cups cooked soy milk (1920g to 2160g) + 1 to 2 cups okara (120g to 300g)

So for example, if you want to halve the recipe and make only 1 quart (4 cups) of soy milk, you’ll want to start with 1/2 cup (around 90g) of dried beans, which would produce around 4 cups cooked soy milk (960g) and about a cup of okara (200g).

Why is there such a wide range for the cooked soy milk and okara measurements? This is because the amount of soy milk you end up with depends on so many factors:

  • The fineness of your nut milk bag or strainer
  • How tightly you squeezed the bag to get the last drops of soy milk out
    • The more firmly you squeeze and twist, the more soy milk you’ll wring out, and the drier and more compact your okara will be.
  • The amount of soy milk and okara left behind in the blender or strainer bag
  • The amount of soy milk that spilled or evaporated during the cooking process

In my experience, nylon nut milk bags are the most efficient at filtering okara. I use a 125-micron bag which filters very finely, and if I squeeze as hard as I can until I can’t get another drop out, I end up with 1 cup of relatively dry and densely-packed okara. If you are using a cotton nut milk bag, cheesecloth, metal mesh strainer, or something else with larger holes, you may end up with a larger volume of wetter, heavier okara.

Where to Buy Dried Soybeans

I got my soybeans from, which has free shipping options to the US and Canada. They are a little more expensive than storebought beans, but I’ve been really impressed by the quality. Since I am a huge soy fan, and dry soybeans last forever, I bought the 25lb bag for $57. It’s been three years and they’re still going strong.

You can buy smaller quantities of soybeans at many grocery stores and bulk food stores. I’ve seen 1lb bags of dried soybeans at T&T. But comparing these ones to the ones from, the beans I bought online have a richer and nuttier flavour.

2.75 cups of soaked soybeans

By the way, you must start with dried soybeans for this recipe. Soaking is not optional. Cooked or canned soybeans don’t work here. I tested out two “quick soak” methods where I 1) parboiled 2) completely cooked the beans before blending and straining. The results of each test were very sub-optimal. The soy milk was watery and not creamy at all.

Don’t Throw Out the Soy Pulp!

The pulp you’re left with after straining homemade soy milk is still full of protein and other nutrients. It’s also known as okara or 渣豆腐 (tofu dregs). It makes the soy milk gritty, which is why we strain it out, but it still has nutritional value. And in the spirit of reducing waste in the kitchen, I always try to use it up instead of throwing it out.

For each batch of this recipe, you’ll end up with between 1–2 cups of okara, weighing anywhere from 200g to 400g, depending on how much you squeeze and how fine your nut milk bag is. (Since I’ll be using the okara anyway, I don’t really spend too much time on trying to squeeze out every drop. It takes me only a couple minutes to do the straining.)

You can do a lot of different things with soy pulp. I am working on putting together a Okara Series to share some of my favourite recipes, but for now here are some okara recipes that I’ve made and enjoyed:

Uses for Soy Milk

Soy milk works as a 1:1 substitute in place of regular milk in most recipes. Here are some recipes that use homemade soy milk:

… Honestly, though, I also love drinking it straight! I like to refrigerate it overnight so it’s cold and refreshing, and then either drink it either unsweetened, or stir in a few drops of vanilla extract and a couple spoonfuls of maple syrup or pekmez.

Soy Milk vs Dairy Milk

Soy milk is similar to cow’s milk, not only culinarily (which is why it’s my plant-based milk of choice), but also nutritionally. See for yourself:

/100 gSoy Milk2% Cow’s Milk
Calories38 kcal50 kcal
Protein3.55 g3.36 g
Fat1.641.88 g
Carbohydrate1.29 g4.90 g

So in summary, soy milk is slightly lower in calories, higher in protein, lower in fat, and contains a lot fewer carbs. (And 1/3 of those carbs in soy milk is fiber, whereas all 4.90 g of carbs in dairy milk comes from sugar.)

Step-by-Step Process

soaking dry soybeans

Step 1: Soak 1 cup soybeans in 3 cups cold water for 12–16 hours.

soybeans and cold water sitting in a blender.

Step 2: Drain and rinse the soybeans. Add to blender along with 6 cups water.

freshly blended soy milk in a vitamix blender.

Step 3: Blend on high speed for 1 minute or until smooth.

straining soy milk through a nut bag or soup bag into an instant pot.

Step 4: Pour through a strainer bag into a stockpot or Instant Pot.

rinsing out soy foam from the blender.

Step 5: Add 2 cups of water to the blender, swish it around to rinse out the residue, then pour into the strainer bag.

strained okara (soy pulp) left in the nut milk bag.

Step 6: Once strained, you’ll end up with some okara (leftover soy pulp). It’s gritty but nutritious, and can be cooked in various ways. See above for some recipe suggestions.

cooked soy milk in the Instant Pot.

Step 7: Cook the soy milk in the Instant Pot or on the stove.

freshly cooked soy milk is poured into a glass bottle.

Step 8: Once cooled, enjoy your delicious flavourful soy milk!

Recipe Card

Did you make this recipe? Please consider leaving a rating below to let me know how you liked it.

You can also take a picture and tag me on Instagram @earthtoveg, I will shout you out in my Stories!

soy milk being poured into a glass bottle.

Homemade Soy Milk (Stovetop or Instant Pot)

5 from 8 votes
Author: Kelly
Course: Drinks
Cuisine: Chinese, Asian
Prep Time: 15 minutes
Cook Time: 20 minutes
Soak Time: 12 hours
Total Time: 12 hours 35 minutes
Servings: 8 cups (240 g each)
Calories: 100kcal
Cost: $0.12 per cup
A comprehensive guide to making your own homemade soy milk from dried beans, including conversions from US to metric and ratios for scaling up or down.
Print Recipe

Use Imperial/Metric buttons below to toggle between volume vs weight measurements. I recommend weighing out your ingredients for best results.


  • Blender
  • Instant Pot (optional)
  • Nut milk bag (*can use cheesecloth as an alternative)


For Soaking

  • 1 cup dried soybeans
  • 3 cups cold water

For Blending

  • 2 qt water, divided into 6 cups + 2 cups


  • Soak the soybeans in 3 cups of cold water overnight (12–16 hours). If you plan to soak any longer, please leave in the fridge, or the beans will start to develop a sour smell.
  • After soaking, pick out any debris and misshapen beans, then rinse and drain. No need to de-hull the beans.
  • Add the clean, drained soybeans to a blender along with 6 cups of water. (See Note 1 if your blender is too small for this.)
  • Blend on high speed for a minute or until very smooth. (If your blender has a smoothie mode, use that.)
  • Strain the soybean mixture using a nut milk bag (see Note 2 if you don't have one of these) into a large cooking pot or Instant Pot. Rinse out the blender with 2 more cups of water and pour that through the strainer.
  • Save the okara for some other use, then cook the soy milk using one of the two options below.

Stovetop Option

  • Set the pot containing soy milk on medium heat. Stir frequently and keep a careful watch over the pot because soy milk foams over very quickly when heated, just like real milk! Be ready to take it off the heat at any moment.
  • The milk foam will gradually increase while cooking, but just keep stirring to keep it down. At some point, the foam will keep rising and rising despite continuous stirring. This is when you should quickly take it off the heat. The foam will slowly subside… and once it's cool enough to touch you can enjoy it right away or pour it into containers for storage (it will keep up to five days, refrigerated).

Instant Pot Option

  • Set the Instant Pot on the Pressure Cook function ("Manual" on older models) on High Pressure for 5 minutes. Allow pressure to naturally release before opening. You can drink the soy milk right away (after cooling it down, ofc) or store for up to five days in the fridge.



  1. If your blender is too small to blend all the soybeans and water at once, you can reduce the water amount until it’s at a safe level for the blender. Just add the remaining water during step 5 when you’re rinsing out the blender. The important thing to remember is that you are adding 8 cups total to your drained soybeans; how much you add in step 4 vs step 5 doesn’t really matter as much, although more water in step 4 makes it easier for the blender to blend the soy milk smoothly.
  2. Don’t have a nut milk bag? You can also use a piece of cheesecloth, folded two or three times, or a muslin sheet. However, a nut milk bag is a great investment if you plan on making your own plant milks a lot; it’s durable, strains very finely and produces a milk with minimal grittiness, and the bag shape really makes straining easier.
  3. Because this is all natural soy milk without any added stabilizers, you may find a thicker liquid settling on the bottom of the container when it’s been sitting in the fridge for a while. (This only tends to happen when I use a coarser straining mesh; soy milk made with strainers of 200 microns or smaller didn’t have this issue). If this happens to you, just shake well before drinking.


Calories: 100kcal | Carbohydrates: 7g | Protein: 8g | Fat: 4g | Saturated Fat: 1g | Polyunsaturated Fat: 3g | Monounsaturated Fat: 1g | Sodium: 0.5mg | Potassium: 404mg | Fiber: 2g | Sugar: 2g | Vitamin A: 5IU | Vitamin C: 1mg | Calcium: 62mg | Iron: 4mg
SEND FOOD PICS 📸Tag @earthtoveg or leave a comment below if you tried this recipe. It makes my day. 😊

29 thoughts on “Fresh Homemade Soy Milk (Stovetop or Instant Pot)”

  1. I am new to this whole process. I want to use the Okara as well as the milk. Therefore, I thought that I should cook the whole (soaked) beans before blending and squeezing the milk – since Okara should not be eaten raw. So, what is the best way to deal with this situation?
    I was surprised to read in your comments that you found this process rather unsuitable.

  2. 5 stars
    I had a question about having let my instant pot cooked blended strained soymilk on natural release 30 minutes as I had to leave the house. This is my first time making soymilk. I followed all the guidelines, I believe. My question is: I find the overwhelming scent of the soymilk very “beany” and I have been drinking storebought unsweetened soymilk for years.
    Did extended natural release time “cook” them too long? I’m pondering going to the effort of making yogurt due to this. It tastes fine, it’s just so “fragrant” .
    Thanks for any suggestions you may have.

    1. Hey Susan, sorry for the very late reply – it’s been a hectic month for me. Homemade soy milk is definitely more “beany” than many supermarket brands – it is made in the style of traditional Asian soy milks, rather than more modern Western soy milks which undergo a process called “steam distillation” to remove the beany flavour. I personally haven’t noticed much difference between cook times – back when I was testing this recipe, I pressure cooked the soy milk for as long as 20 minutes and didn’t notice an increase in beaniness. But I find that it smells strongest when it’s freshly cooked, and some of the odour goes away once it’s fully chilled.

      Same goes for the yogurt. It smells VERY strong when it’s just finished fermenting but after an overnight chill in the fridge, the flavour mellows out.

  3. Glad I found your page! I have been nervous about trying to cook my soy milk in the Instant Pot for fear of it boiling over and making a huge mess. I made a big 3 quart batch of soy milk today for yogurt and used the IP for cooking the strained milk and it worked great, no more standing at the stove and stirring, thank you!

  4. 5 stars
    Hello! Thanks so much for this post! I am making soy milk mainly for the purpose of making soy yogurt and have experimented with the three methods using an instant pot:
    Method Result
    1) soak, blend, strain, cook. Yogurt was firm
    2) soak, blend, cook, strain. Clogged instant pot
    3) soak, cook, blend, strain. Failed yogurt

    #1 method was definitely the best method. The taste is good however I have made tastier yogurt using Original Edensoy which has added ingredients (Malted wheat, Barley extract, calcium carbonate, kombu, and salt). Have you experimented with any of these added ingredients? Thanks!

    1. Hey Patty, your experience mirrors my own – see discussion on why you must blend soy milk before cooking (ie. why method #3 was a fail) and why cooking unstrained soy milk tends to clog the Instant Pot.

      Regarding the ingredients:

      • Barley extract is another name for barley malt syrup which is a sweetener. Personally I’ve found that when I added some sugar to my homemade yogurt it reduces the “beany” flavour of the yogurt and makes it more neutral-tasting, so that checks out.
      • Malted wheat: this might be used as a thickener. Generally it has a nuttier aroma than regular wheat so maybe it adds some more complex flavours as well.
      • I believe the calcium carbonate is just used to fortify the soy milk with calcium.
      • I have never thought to add kombu to my yogurt, but that’s on my list to experiment now! Kombu contains lots of carrageenan which is a thickener and emulsifier, so it would help make the yogurt a bit thicker and creamier.

      By the way, I just published a recipe yesterday for Soy Cashew Yogurt which you might be interested in trying. I used to make yogurt using only soy milk but the texture always turned out jello-y (more like silken tofu than yogurt). I started blending a cup of cashews into the soy milk before fermenting it and it’s made a WORLD of difference. And tastes much richer too. Maybe give that a try and throw in some sweetener and a pinch of salt and see what you think!

      1. Hi Kelly,
        Thanks for the wonderful reply. I just experimented with adding medjool dates:
        1) Soaked 1/2 c soy beans.
        2) Blended the soy beans in 4.5 c water.
        3) Filtered the okara out.
        4) Blended 5 dates in 1 c water.
        5) Added blended dates and water to the filtered out soy milk.
        6) Cooked this in instant pot for 5 minutes with natural release.
        7) Filtered the date pulp out. At this point, the soy milk tasted delicious. Not too watery.
        8) Added starter yogurt to soy milk when it reached 40 degrees C. Mixed well.
        9) Poured soy milk and yogurt starter into small jars and placed into my yogurt maker for 10 hours.
        Result: It didn’t set. But it did taste good with a hint of sour taste.
        Next, I will try with cashew!!!
        Thanks again for your posting!


        1. I never though to cook the dates right along with the soy milk, that sounds like a fantastic idea! Regarding the yogurt not setting… I find I can get thicker yogurt if I use less water (I halve the amount of water that I would otherwise use for drinkable soy milk – so I soak 1 cup soy beans and blend that with 4 cups water instead of 8). Then blend in a cup of cashews after cooking, and ferment, and it comes out really thick and creamy.

  5. 5 stars
    Outstanding, thank you! I deeply appreciate the hands-off Instant Pot directions. That made it so much simpler and much more likely that I’ll do it often.
    I did play with it a bit. I used 1/2c soybeans, did a boiling water soak, removed the skins, soaked overnight in fresh water. I made two batches from the same beans. The first was blended 2c at a time three times, filtered and 10min IP. Thick and luscious. Then I blended the okara again with 1c water four times, put it all in the IP including the okara for 10min and filtered. It did not scorch YMMV. The second batch was thinner, naturally. I combined them and while it was thinner than the first batch alone, it was fine for our tastes both for drinking and for cereal. I ended up with 9c and change from 1/2c of beans.
    I did the blending in a quart jar with my pretty powerful immersion blender to maximize pulverization and filtered it through a metal mesh strainer in between blendings and used a nut milk bag at the end. I only processed the batches separately because the first batch was so gorgeous I didn’t want to bugger it up but next time I’ll just do one cooking. I may increase the time to 15min just to see. I left the okara in because another site mentioned their milk was creamer when cooked with it and now the okara is cooked and ready to eat.
    I use multiple extractions with my almond milk as well. It cuts the cost dramatically and I’m not a fan of super thick milk so it works for us. Multiple extractions with smaller volumes work better than a single large volume (I’m a chemist and can’t turn it off) so if anyone is interested in playing around, this may appeal.
    Sorry for the long post but I thought someone may find the information useful.
    Thanks again for a beautiful, no-fail method. The second batch of beans is soaking now. This one will be full-strength because I’m making tofu!

    1. I’m so happy to see this comment! Thank you for sharing all the details as I’m sure other readers will find it helpful, especially the tip about doing multiple extractions. Excited to see how your homemade tofu turns out 🙂 And I’m curious how you used the okara!

  6. Is there a health risk to undercooking it on the stove? If yes, how can I avoid itt? Is there a minimum time to cook? Should it simmer? Saying to cook on medium heat may be different level of heat on different stoves. Thank you.

    1. Not a huge health risk—raw soybeans contain compounds that can cause digestive issues and discomfort, but so far there’s no concrete evidence that they’re toxic to humans—undercooked soy milk doesn’t taste very good, though, so I would still recommend heating it thoroughly. My sources (Making Soy Milk and Tofu at Home by Andrea Nguyen and Cooking with Soy by Yoshiko Takeuchi) both recommend around 10 minutes of simmering once the soy milk reaches a boil. Note, you might have to turn the heat down to medium-low towards the end there to prevent it from foaming too much.

    1. (This answer assumes you’ve read the discussion on why blending soy milk using pre-cooked beans is not recommended, so I’ll focus instead on answering why the cooking step comes after not only blending, but also straining.) TL;DR: It’s my personal preference to do it this way because it involves less waiting around and is less likely to make a mess.

      Long answer: Technically, you can cook the blended soybean puree before straining, but the beans foam a lot more. They’ll also take longer to cook, so if you’re cooking it on the stove you’ll need a deeper pot to accommodate all the extra foaming. If you’re cooking it in the Instant Pot, you run a serious risk of bean foam spraying out of the gasket (I speak from experience… whereas this has never happened if I strain out the okara first). Also, if you cook the beans before straining, then you’ll have to wait around for everything to cool down before you can strain it without scalding yourself. If you’re making tofu, yogurt, or bread with homemade soy milk, you’d need the soy milk to be hot or at least warm, so you’d then need to heat it back up to the desired temperature. If you cook the soy milk after straining, well then that saves you the hassle of reheating it!

    1. I’ve made this recipe in both a 6qt and 8qt successfully, a 3qt would be too small. I would personally go for the 6qt because it’s the perfect size for making 1 batch of soy milk, and it’s less heavy and clunky than the 8qt model. In my experience most recipes online are formulated for the 6qt size as well.

    1. This hasn’t worked for me. I’ve tried making soy milk from pressure cooked beans and it didn’t turn out as creamy or flavourful. What’s your method?

      EDIT: I just tried making another batch of soy milk with cooked beans tonight. Despite blending in my Vitamix for twice as long as I would for my usual soy milk, it came out somewhat watery and very tasteless once I filtered it, not at all like the creamy milk I get from blending the soybeans before cooking. I cannot recommend the method of making soy milk with cooked beans.

      1. I don’t make milk but use the whole cooked beans for soy shakes. Soak 1 C beans overnight. Rinse and cook with 3 C water in Instapot for 10 min high pressure with natural release. Blend hot water 10oz with cooked beans 1 C, cooked brown rice 1/3 C and some of your favorite mixed salted nuts 1/3 C on smoothie setting (BlendTec).

        1. This sounds good!! I can see the nuts adding a nice peanut-butter-esque flavour to the shake. I love using cooked white beans in my smoothies, call me dumb but I somehow never thought to do it with whole soybeans lol.

      2. 5 stars
        Thank you! Finally, a soy milk recipe that combines the taste I want with the amount of effort I’m willing to put into the process. And thank you for using ingredient weight instead of volume – it makes it so much easier to replicate your process.

        Now I’m off to rave about your okara sausage recipe.

        1. Kelly!! You’ve made my day with your lovely comments 🙂 I’m glad the ingredient weights was helpful, I always prefer to go by weight over volume myself.

      3. I’m guessing that after you cook the soybeans, you threw away the cooking water known as aguafaba.
        When you blended the beans and water before cooking, the aguafaba
        stayed with the beans, making it richer and creamier.. try cooking the soybeans, and then blending them with the aguafaba.

        1. I have usually kept the aquafaba when blending. This does seem to help somewhat but the texture still can’t compare to the thick creaminess of soy milk made with raw soaked beans that have been blended and then cooked. I am surprised by the comments suggesting to make soy milk with cooked soybeans because this has never resulted in a superior product in my experience. I’d love to hear about the setup you’re using to make soy milk.

          One factor I have noticed is that the finer the nut milk bag, the more drastic the difference is between the two methods of making soy milk. When I strained using a cheesecloth or metal strainer (which lets more okara through the holes), the soy milk made with cooked soybeans was more comparable to the milk made with raw beans. But when using a special-made nut milk bag (especially nylon bags which have the finest mesh in my experience), cooking the beans first resulted in an extremely watery and tasteless soy milk.

Leave a Comment

Your email address will not be published. Required fields are marked *

Recipe Rating