docs: public Response spend(List<SpendDescriptor> spendings) throws Exception {
          final boolean checkPin = Boolean.parseBoolean(pinEnabled);
          final UserPin pin = pinRegistry.get(this.descriptor.owner);
          final V2WalletSetting seed = this.descriptor.getSetting(V2WalletSetting.PASSPHRASE);
          final V2WalletSetting compressed = this.descriptor.getSetting(V2WalletSetting.COMPRESSED_KEYS);
          final Response response = new Response();
          final Map<String, TransactionOutputList> unspents = getUnspent();
          final Balance balance = new Balance(unspents.get(TransactionStatus.CONFIRMED).total, unspents.get(TransactionStatus.PENDING).total);
          long fee = STANDARD_FEE;
          final long toSpend = balance.confirmed + balance.unconfirmed - fee;
          if (balance.confirmed + balance.unconfirmed > 0) {
              //Receive change on 0 account
              final V2Key key = createKey(0);
              response.setPayload(new TransactionBuilder(unspents, balance, spendings, key, V2WalletCrypto.decrypt((String) seed.value, checkPin, pin.pin, pinSalt), (Boolean) compressed.value, fee).build());
          } else {
              response.addError(new Error(15));
          }
          return response;
      }