diff --git a/.gitignore b/.gitignore
index 833b45220743518fc4283f025a3c2b99e3578fad..e0f1904e85f7179def0a215b3655899c7d3b0971 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,9 @@
+# Ignore hive checkpoint files
+checkpoints/*.json.lst
+
+# OSX
+.DS_Store
+
 # Byte-compiled / optimized / DLL files
 __pycache__/
 *.py[cod]
diff --git a/checkpoints/README.md b/checkpoints/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..72b146a03c09ed645b8d276e75cc8dbbbcd88aaf
--- /dev/null
+++ b/checkpoints/README.md
@@ -0,0 +1,17 @@
+# Hive Checkpoints
+
+`hive` will detect checkpoint files in this directory. They can be used to speed up core reindexing: it will check this directory on startup.
+
+### Format
+
+Files should be named `(block_num).json.lst` where `block_num` is the last block in the file.
+
+The first file must begin with block 1. Successive files must begin with the previous file's block_num, plus 1.
+
+e.g.:
+
+ - 1000000.json.lst -- blocks 1 - 1,000,000
+ - 2000000.json.lst -- blocks 1,000,001 - 2,000,000
+ - 3000000.json.lst -- blocks 2,000,001 - 3,000,000
+
+The intervals do not need to be regular, but blocks *must* be successive and there must be no duplicates.