Place the beans in a bowl with water and remove any damaged beans which float on top of the water. Soak the beans overnight, then drain the water (check the recipe notes to read why soaking is important and DOES make a difference!).
Transfer the drained beans into the Instant Pot, add 6 cups of fresh water, and salt.
Close and seal the Instant Pot. Cook on "MANUAL" for 35 minutes. Once the time is up, quick release. Check the recipe notes for the stovetop instructions.
Carefully open the lid and drain the beans into a large sieve. Quickly rinse out the Instant Pot.
Add oil to the Instant Pot and press the "SAUTE" button.
Once the oil is hot, add the onion and sauté for about 6-8 minutes. Stir in garlic, all spices and sauté for a further 1 minute.
Return the beans to the Instant pot and add 1 cup of vegetable broth.
Puree the beans with a potato masher or with an immersion blender until they reach your desired consistency. You can leave some beans chunky or puree everything until completely smooth.
Taste and adjust seasoning as desired, add more salt, pepper, chili, cayenne to taste. Garnish with fresh cilantro and lime juice. Serve, and enjoy!