diff --git a/console/console.go b/console/console.go
index 9bb3df9265e404bfc02acfc4abebf02adb289c99..389d528580d860d0a171b8a0eeb932f4d196a441 100644
--- a/console/console.go
+++ b/console/console.go
@@ -137,10 +137,14 @@ func (c *Console) init(preload []string) error {
 			continue // manually mapped or ignore
 		}
 		if file, ok := web3ext.Modules[api]; ok {
+			// Load our extension for the module.
 			if err = c.jsre.Compile(fmt.Sprintf("%s.js", api), file); err != nil {
 				return fmt.Errorf("%s.js: %v", api, err)
 			}
 			flatten += fmt.Sprintf("var %s = web3.%s; ", api, api)
+		} else if obj, err := c.jsre.Run("web3." + api); err == nil && obj.IsObject() {
+			// Enable web3.js built-in extension if available.
+			flatten += fmt.Sprintf("var %s = web3.%s; ", api, api)
 		}
 	}
 	if _, err = c.jsre.Run(flatten); err != nil {
diff --git a/internal/web3ext/web3ext.go b/internal/web3ext/web3ext.go
index e10e660450ae12a1db517aa1e0d4ee3f6bc3a893..edbe45fa34de3711da662e4d79d3b3ee39f6dbd8 100644
--- a/internal/web3ext/web3ext.go
+++ b/internal/web3ext/web3ext.go
@@ -19,10 +19,8 @@ package web3ext
 
 var Modules = map[string]string{
 	"admin":      Admin_JS,
-	"bzz":        Bzz_JS,
 	"chequebook": Chequebook_JS,
 	"debug":      Debug_JS,
-	"ens":        ENS_JS,
 	"eth":        Eth_JS,
 	"miner":      Miner_JS,
 	"net":        Net_JS,
@@ -32,101 +30,6 @@ var Modules = map[string]string{
 	"txpool":     TxPool_JS,
 }
 
-const Bzz_JS = `
-web3._extend({
-	property: 'bzz',
-	methods:
-	[
-		new web3._extend.Method({
-			name: 'syncEnabled',
-			call: 'bzz_syncEnabled',
-			params: 1,
-			inputFormatter: [null]
-		}),
-		new web3._extend.Method({
-			name: 'swapEnabled',
-			call: 'bzz_swapEnabled',
-			params: 1,
-			inputFormatter: [null]
-		}),
-		new web3._extend.Method({
-			name: 'download',
-			call: 'bzz_download',
-			params: 2,
-			inputFormatter: [null, null]
-		}),
-		new web3._extend.Method({
-			name: 'upload',
-			call: 'bzz_upload',
-			params: 2,
-			inputFormatter: [null, null]
-		}),
-		new web3._extend.Method({
-			name: 'resolve',
-			call: 'bzz_resolve',
-			params: 1,
-			inputFormatter: [null]
-		}),
-		new web3._extend.Method({
-			name: 'get',
-			call: 'bzz_get',
-			params: 1,
-			inputFormatter: [null]
-		}),
-		new web3._extend.Method({
-			name: 'put',
-			call: 'bzz_put',
-			params: 2,
-			inputFormatter: [null, null]
-		}),
-		new web3._extend.Method({
-			name: 'modify',
-			call: 'bzz_modify',
-			params: 4,
-			inputFormatter: [null, null, null, null]
-		})
-	],
-	properties:
-	[
-		new web3._extend.Property({
-			name: 'hive',
-			getter: 'bzz_hive'
-		}),
-		new web3._extend.Property({
-			name: 'info',
-			getter: 'bzz_info',
-		}),
-	]
-});
-`
-
-const ENS_JS = `
-web3._extend({
-  property: 'ens',
-  methods:
-  [
-    new web3._extend.Method({
-			name: 'register',
-			call: 'ens_register',
-			params: 1,
-			inputFormatter: [null]
-		}),
-	new web3._extend.Method({
-			name: 'setContentHash',
-			call: 'ens_setContentHash',
-			params: 2,
-			inputFormatter: [null, null]
-		}),
-	new web3._extend.Method({
-			name: 'resolve',
-			call: 'ens_resolve',
-			params: 1,
-			inputFormatter: [null]
-		}),
-	]
-})
-`
-
 const Chequebook_JS = `
 web3._extend({
   property: 'chequebook',