Is there a way to build and sign transactions with the cardano-cli/api without running a node? I am trying to construct a transaction using the cli or api and submit it using blockfrost. It throws an error about the CARDANO_NODE_SOCKET_PATH since I am not running a node locally. Any help would be appreciated. I would prefer to avoid using the cardano-serialization-lib since I want all my offchain code to be in Haskell too.
You could try building on/with parts of the plutus-apps repo. It doesn't need a node.
However this is not its intended use case so it won't be without problems.
You'll probably have to write your own minAda function, your own balancer, and your own fee calculator. These are deemed the responsibility of the wallet - at present only the
cardano-wallet is feature complete and integrated into plutus in that sense.
The cardano-wallet will not be happy if you don't point it at a node socket.
You dont need a node at all to build or sign CLI transactions (i.e. assuming you're using
cardano-cli transaction build-raw. The only point you might need to look up something from a live node is getting UTxOs to your address (and checking TTL), but atleast for latter you can also calculate current slot remotely (or use tip from your API provider).
As regards input UTxO , blockfrost as well as Koios both offer checking address utxos.
I believe that error only comes up when you try to push a transaction
sounds like you've already constructed your transaction with cardano-cli - if not this is available via github, just grab the latest binary release from the cardano node repo, it'll include cardano-cli
at any rate, once you have your transaction built and signed it's just a matter of submitted it to the blockchain.
a couple of options, us a wallet like eternl, you can import your own transactions and use their nodes to push it, this is available under Send > Options > Import
alternatively you can use any of the publicly available cardano node apis