diff --git a/cmd/ipfs/ipfs.go b/cmd/ipfs/ipfs.go
index a79a49d0cd7206072b88908ea56795bc2536c8fd..2d3f79a3c0aa238f0ab17e3a904b0fb337672892 100644
--- a/cmd/ipfs/ipfs.go
+++ b/cmd/ipfs/ipfs.go
@@ -7,6 +7,7 @@ import (
 	"runtime/pprof"
 
 	flag "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gonuts/flag"
+	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/inconshreveable/go-update/check"
 	commander "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/commander"
 	ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
 
@@ -126,18 +127,17 @@ func localNode(confdir string, online bool) (*core.IpfsNode, error) {
 	}
 
 	if cfg.Version.ShouldCheckForUpdate() {
-		obsolete := updates.CheckForUpdates()
-		if obsolete != nil {
-			if cfg.Version.Check == config.CheckError {
-				return nil, obsolete
-			}
+		_, err := updates.CheckForUpdate()
+		if err != nil {
+			if err != check.NoUpdateAvailable {
+				log.Error("Error while checking for update: %v\n", err)
+				return nil, err
 
-			// when "warn" version.check mode we just show warning message
-			log.Warning(fmt.Sprintf("%v", obsolete))
-		} else {
-			// update most recent check timestamp in config
-			config.RecordUpdateCheck(cfg, filename)
+			}
+			log.Notice("No update available")
 		}
+
+		config.RecordUpdateCheck(cfg, filename)
 	}
 
 	return core.NewIpfsNode(cfg, online)
diff --git a/updates/updates.go b/updates/updates.go
index f2f4f93e8e922b4097b19279a2fcf09e2b3d95b6..4b6480ed640471eab46e95565ba960df743df9d9 100644
--- a/updates/updates.go
+++ b/updates/updates.go
@@ -1,32 +1,18 @@
 package updates
 
 import (
-	"encoding/json"
-	"fmt"
-	"net/http"
 	"os"
 
 	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/coreos/go-semver/semver"
+	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/inconshreveable/go-update"
+	"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/inconshreveable/go-update/check"
 	u "github.com/jbenet/go-ipfs/util"
 )
 
 const (
-	Version                   = "0.1.0" // actual current application's version literal
-	EndpointURLLatestReleases = "https://api.github.com/repos/jbenet/go-ipfs/tags"
-	VersionErrorShort         = `Warning: You are running version %s of go-ipfs. The latest version is %s.`
-	VersionErrorLong          = `
-  Warning: You are running version %s of go-ipfs. The latest version is %s.
-  Since this is alpha software, it is strongly recommended you update.
-
-  You can update go-ipfs by running
-
-      ipfs version update
-
-  You can silence this message by running
-
-      ipfs config update.check ignore
-
-  `
+	Version           = "0.1.0" // actual current application's version literal
+	UpdateEndpointURL = "https://api.equinox.io/1/Updates"
+	UpdateAppID       = "ap_ywkPmAR40q4EfdikN9Jh2hgIHi"
 )
 
 var log = u.Logger("updates")
@@ -45,42 +31,13 @@ func init() {
 func parseVersion() (*semver.Version, error) {
 	return semver.NewVersion(Version)
 }
-func CheckForUpdates() error {
-	resp, err := http.Get(EndpointURLLatestReleases)
-	if err != nil {
-		// can't reach the endpoint, coud be firewall, or no internet connection or something else
-		log.Error("update check: error connecting to API endpoint for newer versions: %v", err)
-		return nil
-	}
-	var body interface{}
-	_ = json.NewDecoder(resp.Body).Decode(&body)
-	releases, ok := body.([]interface{})
-	if !ok {
-		// the response body does not seem to meet specified Github API format
-		// https://developer.github.com/v3/repos/#list-tags
-		log.Error("update check: API endpoint for newer versions does not seem to be in Github API specified format")
-		return nil
-	}
-	for _, r := range releases {
-		release, ok := r.(map[string]interface{})
-		if !ok {
-			continue
-		}
-		tagName, ok := release["name"].(string)
-		if !ok {
-			continue
-		}
-		if len(tagName) > 0 && tagName[0] == 'v' {
-			// both 'v0.1.0' and '0.1.0' semver tagname conventions can be encountered
-			tagName = tagName[1:]
-		}
-		releaseVersion, err := semver.NewVersion(tagName)
-		if err != nil {
-			continue
-		}
-		if currentVersion.LessThan(*releaseVersion) {
-			return fmt.Errorf(VersionErrorLong, Version, tagName)
-		}
+
+func CheckForUpdate() (*check.Result, error) {
+	param := check.Params{
+		AppVersion: Version,
+		AppId:      UpdateAppID,
+		Channel:    "stable",
 	}
-	return nil
+
+	return param.CheckForUpdate(UpdateEndpointURL, update.New())
 }