When you estimate a project, your task is to provide a more accurate forecast of the amount of effort that will be expended in development. This allows the client to understand how much they will need to pay and make a decision about collaborating with you.
It's a tricky situation. The developer is trying to guess the client's budget and align it with their own capabilities. It's important not to quote too low to avoid running at a loss or overestimate the estimate and exceed the client's expected budget.
It's somewhat reminiscent of poker – bluffing, risk, and cunning. Sometimes you even have to collaborate closely with partners and "play your cards right." It can be fun and thrilling, but...
The problem is that developers end up as adversaries with the client in the early stages of the project. This seems odd when the initial goal was to turn the client's idea into a beautiful, functional application. Competition in this case does not benefit the project, only introducing an undesirable element of secrecy.
Of course, if your business thrives on deceiving clients, making them believe that their desires are reality, and when the deception is revealed, it's too late and all the money is spent, blaming the developer you hired, whom you've already fired – well, the process described above is tailor-made for you. You'll need to excel in eloquence and self-control. You may find success, but you'll keep earning until the day you get caught and face the consequences.
If you genuinely want to help the client solve their problem, this approach is not acceptable. You should collaborate from the very beginning. The budget should not be a secret from the developer, and the development processes, team, and the actual cost of work should not be hidden from the client.