How to programmatically send Bitcoins without requiring a local copy of the blockchain? I'm quite new to Bitcoin development! I've seen the documentation about RPC commands, available when you have a local copy of the blockchain.

But I'd like to know if it's possible to create and broadcast send transactions on the Bitcoin network without a local copy of the blockchain?

I use Java, but I try to avoid using Bitcoinj. Currently, I try to understand how everything works under the hood. I'm able to create new addresses, with their associated private keys (raw and WIFformats). Those work well!

Using the API provided by blockchain.com, I'm able to get info about those addresses and to know if they have received coins.

The only missing part for me is to find a way to programmatically send some coins from those addresses to other addresses, without a local copy of the blockchain (and using RPC calls on it).

I see blockchain.com also provides a Wallet API but, correct me if I'm wrong, by using this they control the private keys right? I'd prefere a way to send coins by creating and signing the transactions locally and then broadcasting them, by myself... Without a local blockchain.

Is it possible? What are the options?
There is a similar question from 6 years ago with different options and answers Is there a remote, trustless bitcoin API that doesn&#39;t require anything (blockchain/SPV headers) to be stored locally?

Otherwise I suppose the options havent changed much, unless maybe the pruning mod which allow you to run a lightweight bitcoin node (550mb instead of 250giga+)