Is it possible to build a transaction without membership proofs?

I want to build a TxProposal, they need selected_utxos_with_proofs

and I found get_membership_proofs is from Ledger.

My question is: does membership proofs a must for the TxProposal, or how can I generate by self?

Membership proofs allow the consensus enclave to check that a transaction is correct without looking up information from a database. This removes a possible data access pattern side channel that might otherwise leak the input ring members. You must have the membership proofs to construct a valid transaction.

I suggest you look at the transaction building gRPC api calls in mobilecoind. For example, https://github.com/mobilecoinfoundation/mobilecoin/blob/65cff1e032b2af376879e86aa0026262d131298a/mobilecoind/src/service.rs#L727

Thanks, robb, I have read lots of source codes, and nearly build the tx, besides Membership proofs.

Are there any documents about how to generate membership proofs locally, or through API use custom collection of UnspentTxOut?