diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
 # CHANGELOG
 
+## master
+
+
+## v0.1.1.0
+
+* Add `--cointracking` flag to format data for use with CoinTracking's Bulk
+  Imports feature.
+* Fix lower-bounds for `req`.
+
+
 ## v0.1.0.0
 
 * Initial release
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -10,6 +10,7 @@
 
 ```sh
 stack run -- <YOUR_API_KEY> <ACCOUNT_PUBKEY>
+stack run -- --help
 ```
 
 TODO:
@@ -17,8 +18,6 @@
 * Add `-Y <year>` flag to limit years exported(or start/end flags?).
 * Allow sourcing pubkey & apikey from env variables?
 * Move SolanaBeach API to separate, published package.
-* Publish on Hackage & Stackage.
-* Add necessary fields for CoinTracking imports(currency & "trade id"?)
 
 [get-stack]: https://docs.haskellstack.org/en/stable/README/
 [solanabeach-api]: https://github.com/solana-beach/api
diff --git a/solana-staking-csvs.cabal b/solana-staking-csvs.cabal
--- a/solana-staking-csvs.cabal
+++ b/solana-staking-csvs.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           solana-staking-csvs
-version:        0.1.0.0
+version:        0.1.1.0
 synopsis:       Generate CSV Exports of your Solana Staking Rewards.
 description:    @solana-staking-csvs@ is a CLI program that queries the Solana blockchain
                 for an account's staking accounts and exports all their staking rewards to
@@ -44,6 +44,7 @@
 library
   exposed-modules:
       Console.SolanaStaking.Api
+      Console.SolanaStaking.CoinTracking
       Console.SolanaStaking.Csv
       Console.SolanaStaking.Main
   other-modules:
@@ -65,8 +66,9 @@
     , bytestring <1
     , cassava <1
     , cmdargs >=0.10 && <1
+    , cointracking-imports <1
     , mtl ==2.*
-    , req ==3.*
+    , req >=3.4 && <4
     , scientific <1
     , text <2
     , time <2
diff --git a/src/Console/SolanaStaking/Api.hs b/src/Console/SolanaStaking/Api.hs
--- a/src/Console/SolanaStaking/Api.hs
+++ b/src/Console/SolanaStaking/Api.hs
@@ -28,6 +28,7 @@
       -- * General API Types
     , Lamports(..)
     , renderLamports
+    , scientificLamports
     , StakingPubKey(..)
     ) where
 
@@ -153,12 +154,11 @@
 
 -- | Render an amount of 'Lamports' as text, converting it to SOL.
 renderLamports :: Lamports -> T.Text
-renderLamports =
-    T.pack
-        . formatScientific Fixed (Just 9)
-        . (* 0.000000001)
-        . fromInteger
-        . fromLamports
+renderLamports = T.pack . formatScientific Fixed (Just 9) . scientificLamports
+
+-- | Convert Lamports into Scientific representation of SOL.
+scientificLamports :: Lamports -> Scientific
+scientificLamports = (* 0.000000001) . fromInteger . fromLamports
 
 
 -- | Get the staking rewards with a staking account's pubkey.
diff --git a/src/Console/SolanaStaking/CoinTracking.hs b/src/Console/SolanaStaking/CoinTracking.hs
new file mode 100644
--- /dev/null
+++ b/src/Console/SolanaStaking/CoinTracking.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE RecordWildCards #-}
+{-| Generate & write/print CoinTracking import files.
+
+-}
+module Console.SolanaStaking.CoinTracking
+    ( makeCoinTrackingImport
+    , writeOrPrintImportData
+    , makeImportData
+    , sol
+    ) where
+
+import           Control.Monad                  ( (>=>) )
+import           Data.Time                      ( utcToLocalZonedTime )
+import           Data.Time.Clock.POSIX          ( posixSecondsToUTCTime )
+import           Web.CoinTracking.Imports       ( Amount(..)
+                                                , CTImportData(..)
+                                                , CTTransactionType(Staking)
+                                                , Currency(..)
+                                                , coinTrackingCsvImport
+                                                , writeImportDataToFile
+                                                )
+
+import           Console.SolanaStaking.Api      ( StakeReward(..)
+                                                , StakingAccount(..)
+                                                , StakingPubKey(..)
+                                                , scientificLamports
+                                                )
+
+import qualified Data.ByteString.Lazy.Char8    as LBC
+import qualified Data.Text                     as T
+
+
+-- | Generate the Import file for CoinTracking & write to destination or
+-- print to stdout.
+makeCoinTrackingImport :: FilePath -> [(StakingAccount, StakeReward)] -> IO ()
+makeCoinTrackingImport dest = makeImportData >=> writeOrPrintImportData dest
+
+-- | Write or print the generated import data.
+writeOrPrintImportData :: FilePath -> [CTImportData] -> IO ()
+writeOrPrintImportData dest importData = if dest == "-"
+    then LBC.putStrLn $ coinTrackingCsvImport importData
+    else writeImportDataToFile dest importData
+
+-- | Turn a 'StakeReward' into a 'CTImportData', localizing the reward
+-- time.
+makeImportData :: [(StakingAccount, StakeReward)] -> IO [CTImportData]
+makeImportData = mapM $ \(StakingAccount {..}, StakeReward {..}) -> do
+    zonedTime <- utcToLocalZonedTime $ posixSecondsToUTCTime srTimestamp
+    return CTImportData
+        { ctidType      = Staking
+        , ctidBuy       = Just $ Amount (scientificLamports srAmount) sol
+        , ctidSell      = Nothing
+        , ctidFee       = Nothing
+        , ctidExchange  = "Solana Staking"
+        , ctidGroup     = "Staking"
+        , ctidComment   = "Imported from solana-staking-csvs"
+        , ctidDate      = zonedTime
+        , ctidTradeId   =
+            "SOL-STAKE-" <> fromStakingPubKey saPubKey <> "-" <> T.pack
+                (show srEpoch)
+        , ctidBuyValue  = Nothing
+        , ctidSellValue = Nothing
+        }
+
+-- | @SOL@ currency with the @SOL2@ ticker & 9 decimals of precision.
+sol :: Currency
+sol = Currency 9 "SOL2"
diff --git a/src/Console/SolanaStaking/Main.hs b/src/Console/SolanaStaking/Main.hs
--- a/src/Console/SolanaStaking/Main.hs
+++ b/src/Console/SolanaStaking/Main.hs
@@ -45,6 +45,8 @@
                                                 )
 
 import           Console.SolanaStaking.Api
+import           Console.SolanaStaking.CoinTracking
+                                                ( makeCoinTrackingImport )
 import           Console.SolanaStaking.Csv      ( makeCsvContents )
 import           Paths_solana_staking_csvs      ( version )
 
@@ -67,11 +69,14 @@
         mapM_ (hPutStrLn stderr . ("\t" <>) . show) stakeErrors
     -- Write the CSV
     let orderedRewards = sortOn (srTimestamp . snd) stakeRewards
-        output         = makeCsvContents orderedRewards
         outputFile     = fromMaybe "-" argOutputFile
-    if outputFile == "-"
-        then liftIO $ LBS.putStr output
-        else liftIO $ LBS.writeFile outputFile output
+    if argCoinTracking
+        then liftIO $ makeCoinTrackingImport outputFile orderedRewards
+        else do
+            let output = makeCsvContents orderedRewards
+            if outputFile == "-"
+                then liftIO $ LBS.putStr output
+                else liftIO $ LBS.writeFile outputFile output
   where
     runner :: ReaderT Config (ExceptT APIError IO) a -> IO (Either APIError a)
     runner = runExceptT . flip runReaderT (mkConfig argApiKey argPubKey)
@@ -79,13 +84,16 @@
 
 -- | CLI arguments supported by the executable.
 data Args = Args
-    { argApiKey     :: String
+    { argApiKey       :: String
     -- ^ Solana Beach API Key
-    , argPubKey     :: String
+    , argPubKey       :: String
     -- ^ Delegator's PubKey.
-    , argOutputFile :: Maybe String
+    , argOutputFile   :: Maybe String
     -- ^ Optional output file. 'Nothing' or @'Just' "-"@ means print to
     -- 'System.IO.stdout'.
+    , argCoinTracking :: Bool
+    -- ^ Flag to enable writing/printing files formatted for CoinTracking
+    -- Imports.
     }
     deriving (Show, Read, Eq, Data, Typeable)
 
@@ -96,15 +104,19 @@
 argSpec :: Args
 argSpec =
     Args
-            { argApiKey     = def &= argPos 0 &= typ "API_KEY"
-            , argPubKey     = def &= argPos 1 &= typ "ACCOUNT_PUBKEY"
-            , argOutputFile =
+            { argApiKey       = def &= argPos 0 &= typ "API_KEY"
+            , argPubKey       = def &= argPos 1 &= typ "ACCOUNT_PUBKEY"
+            , argOutputFile   =
                 Nothing
                 &= help "File to write the export to. Default: stdout"
                 &= explicit
                 &= name "output-file"
                 &= name "o"
                 &= typ "FILE"
+            , argCoinTracking = False
+                                &= help "Generate a CoinTracking Import file."
+                                &= explicit
+                                &= name "cointracking"
             }
         &= summary
                (  "solana-staking-csvs v"
