diff --git a/gbs-downloader.cabal b/gbs-downloader.cabal
index ab7a6bcd49b43a16929d22be87c92ebf69eea0d1..f320b64710049e5ad6fb10640f9664c4c1799911 100644
--- a/gbs-downloader.cabal
+++ b/gbs-downloader.cabal
@@ -95,6 +95,7 @@ library
     , bytestring
     , connection
     , containers
+    , data-default-class
     , exceptions
     , http-client
     , http-client-tls
@@ -102,7 +103,7 @@ library
     , servant-client
     , servant-client-core
     , tahoe-chk
-    , tahoe-great-black-swamp  >=0.2       && <0.3
+    , tahoe-great-black-swamp  >=0.2 && <0.3
     , text
     , yaml
 
@@ -174,6 +175,7 @@ test-suite gbs-downloader-test
     , bytestring
     , containers
     , crypto-api
+    , data-default-class
     , gbs-downloader
     , hedgehog
     , tahoe-chk
diff --git a/src/Tahoe/Announcement.hs b/src/Tahoe/Announcement.hs
index 1729bbabf179856f81f47ae343dbcbd812441c0f..7fbf4f7af5c0ea1dca49041def8c19cba0fa0c9a 100644
--- a/src/Tahoe/Announcement.hs
+++ b/src/Tahoe/Announcement.hs
@@ -11,6 +11,7 @@ module Tahoe.Announcement (
 import Data.Aeson (FromJSON (parseJSON), ToJSON (toJSON), object, withObject, (.:), (.:?), (.=))
 import qualified Data.ByteString as B
 import Data.ByteString.Base32 (decodeBase32Unpadded, encodeBase32Unpadded)
+import Data.Default.Class (Default (def))
 import qualified Data.Map.Strict as Map
 import Data.Maybe (fromMaybe)
 import qualified Data.Text
@@ -44,6 +45,14 @@ data StorageServerAnnouncement = StorageServerAnnouncement
     }
     deriving (Eq, Ord, Show)
 
+instance Default StorageServerAnnouncement where
+    def =
+        StorageServerAnnouncement
+            { storageServerAnnouncementFURL = Nothing
+            , storageServerAnnouncementNick = Nothing
+            , storageServerAnnouncementPermutationSeed = Nothing
+            }
+
 -- Support deserialization of a StorageServerAnnouncement from the
 -- ``servers.yaml`` format supported by Tahoe-LAFS.
 instance FromJSON StorageServerAnnouncement where
diff --git a/test/Spec.hs b/test/Spec.hs
index 3fbcda4c744ea1d528ed7b57fc9d18724112bd89..cf7bcce1bb5f79cf77f18ff4990dc853823e1463 100644
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -8,6 +8,7 @@ import qualified Data.Binary as Binary
 import qualified Data.ByteString as B
 import Data.ByteString.Base32 (encodeBase32Unpadded)
 import qualified Data.ByteString.Lazy as BL
+import Data.Default.Class (Default (def))
 import qualified Data.Map.Strict as Map
 import qualified Data.Set as Set
 import qualified Data.Text as T
@@ -109,12 +110,7 @@ tests =
         , testCase "no reachable servers" $ do
             -- If we can't contact any configured server then we can't
             -- possibly get enough shares to recover the application data.
-            let ann =
-                    StorageServerAnnouncement
-                        { storageServerAnnouncementFURL = Nothing
-                        , storageServerAnnouncementNick = Just "unreachable"
-                        , storageServerAnnouncementPermutationSeed = Nothing
-                        }
+            let ann = def{storageServerAnnouncementNick = Just "unreachable"}
                 anns =
                     Map.fromList
                         [
@@ -136,10 +132,9 @@ tests =
                     Map.fromList
                         [
                             ( "v0-abc123"
-                            , StorageServerAnnouncement
+                            , def
                                 { storageServerAnnouncementFURL = Just "somewhere"
                                 , storageServerAnnouncementNick = Just "abc123"
-                                , storageServerAnnouncementPermutationSeed = Nothing
                                 }
                             )
                         ]
@@ -170,18 +165,16 @@ tests =
                     Map.fromList
                         [
                             ( "v0-abc123"
-                            , StorageServerAnnouncement
+                            , def
                                 { storageServerAnnouncementFURL = Just "somewhere"
                                 , storageServerAnnouncementNick = Just "abc123"
-                                , storageServerAnnouncementPermutationSeed = Nothing
                                 }
                             )
                         ,
                             ( "v0-abc456"
-                            , StorageServerAnnouncement
+                            , def
                                 { storageServerAnnouncementFURL = Just "elsewhere"
                                 , storageServerAnnouncementNick = Just "abc123"
-                                , storageServerAnnouncementPermutationSeed = Nothing
                                 }
                             )
                         ]
@@ -217,10 +210,9 @@ tests =
                     Map.fromList
                         [
                             ( "v0-abc123"
-                            , StorageServerAnnouncement
+                            , def
                                 { storageServerAnnouncementFURL = Just "somewhere"
                                 , storageServerAnnouncementNick = Just "abc123"
-                                , storageServerAnnouncementPermutationSeed = Nothing
                                 }
                             )
                         ]
@@ -248,10 +240,9 @@ tests =
                     Map.fromList
                         [
                             ( "v0-abc123"
-                            , StorageServerAnnouncement
+                            , def
                                 { storageServerAnnouncementFURL = Just "somewhere"
                                 , storageServerAnnouncementNick = Just "abc123"
-                                , storageServerAnnouncementPermutationSeed = Nothing
                                 }
                             )
                         ]
@@ -395,10 +386,9 @@ tests =
     -- server identifier.
     makeAnn :: StorageServerID -> StorageServerAnnouncement
     makeAnn sid =
-        StorageServerAnnouncement
+        def
             { storageServerAnnouncementFURL = Just $ "pb://" <> sid <> "/" <> sid
             , storageServerAnnouncementNick = Just . encodeBase32Unpadded . encodeUtf8 $ sid
-            , storageServerAnnouncementPermutationSeed = Nothing
             }
 
     -- Generate lists of ints that sum to a given total.