diff --git a/src/util/io.cpp b/src/util/io.cpp
index 84db1e4..76fe18c 100644
--- a/src/util/io.cpp
+++ b/src/util/io.cpp
@@ -37,8 +37,8 @@
       case NO_ENCODING:
         t::streamSource(is) >> t::streamSink(os);
         break;
-      case BASE_64:
-        t::streamSource(is) >> t::base64Decode() >> t::streamSink(os);
+      case BASE64:
+        t::streamSource(is) >> t::stripSpace("\n") >> t::base64Decode(false) >> t::streamSink(os);
         break;
       case HEX:
         t::streamSource(is) >> t::hexDecode() >> t::streamSink(os);
@@ -69,7 +69,7 @@
       case NO_ENCODING:
         t::bufferSource(block.wire(), block.size()) >> t::streamSink(os);
         break;
-      case BASE_64:
+      case BASE64:
         t::bufferSource(block.wire(), block.size()) >> t::base64Encode() >> t::streamSink(os);
         break;
       case HEX:
diff --git a/src/util/io.hpp b/src/util/io.hpp
index a169113..ea093d5 100644
--- a/src/util/io.hpp
+++ b/src/util/io.hpp
@@ -43,17 +43,32 @@
 /** \brief indicates how a file or stream is encoded
  */
 enum IoEncoding {
-  NO_ENCODING, ///< binary without encoding
-  BASE_64, ///< base64 encoding
-  HEX ///< uppercase hexadecimal encoding
+  /** \brief binary without encoding
+   */
+  NO_ENCODING,
+
+  /** \brief base64 encoding
+   *
+   *  \p save() inserts a newline after every 64 characters,
+   *  \p load() can accept base64 text with or without newlines
+   */
+  BASE64,
+
+  /** \brief hexadecimal encoding
+   *
+   *  \p save() uses uppercase letters A-F, \p load() can accept mixed-case
+   */
+  HEX
 };
 
+constexpr IoEncoding DEPRECATED(BASE_64) = BASE64;
+
 /** \brief loads a TLV block from a stream
  *  \return if success, the Block and true
  *          otherwise, a default-constructed Block and false
  */
 optional<Block>
-loadBlock(std::istream& is, IoEncoding encoding = BASE_64);
+loadBlock(std::istream& is, IoEncoding encoding = BASE64);
 
 /** \brief loads a TLV element from a stream
  *  \tparam T type of TLV element; T must be WireDecodable,
@@ -62,7 +77,7 @@
  */
 template<typename T>
 shared_ptr<T>
-load(std::istream& is, IoEncoding encoding = BASE_64)
+load(std::istream& is, IoEncoding encoding = BASE64)
 {
   optional<Block> block = loadBlock(is, encoding);
   if (!block) {
@@ -86,7 +101,7 @@
  */
 template<typename T>
 shared_ptr<T>
-load(const std::string& filename, IoEncoding encoding = BASE_64)
+load(const std::string& filename, IoEncoding encoding = BASE64)
 {
   std::ifstream is(filename);
   return load<T>(is, encoding);
@@ -96,7 +111,7 @@
  *  \throw Error error during saving
  */
 void
-saveBlock(const Block& block, std::ostream& os, IoEncoding encoding = BASE_64);
+saveBlock(const Block& block, std::ostream& os, IoEncoding encoding = BASE64);
 
 /** \brief saves a TLV element to a stream
  *  \tparam T type of TLV element; T must be WireEncodable,
@@ -105,7 +120,7 @@
  */
 template<typename T>
 void
-save(const T& obj, std::ostream& os, IoEncoding encoding = BASE_64)
+save(const T& obj, std::ostream& os, IoEncoding encoding = BASE64)
 {
   Block block;
   try {
@@ -125,7 +140,7 @@
  */
 template<typename T>
 void
-save(const T& obj, const std::string& filename, IoEncoding encoding = BASE_64)
+save(const T& obj, const std::string& filename, IoEncoding encoding = BASE64)
 {
   std::ofstream os(filename);
   save(obj, os, encoding);
