diff --git a/cmd/binary/doc.go b/cmd/binary/doc.go
index d181068..8f05bde 100644
--- a/cmd/binary/doc.go
+++ b/cmd/binary/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The binary tool facilitates interaction with the veyron binary repository.
+The binary tool facilitates interaction with the vanadium binary repository.
 
 Usage:
    binary <command>
@@ -62,7 +62,7 @@
 Usage:
    binary delete <von>
 
-<von> is the veyron object name of the binary to delete
+<von> is the vanadium object name of the binary to delete
 
 Binary Download
 
@@ -72,8 +72,8 @@
 Usage:
    binary download <von> <filename>
 
-<von> is the veyron object name of the binary to download <filename> is the name
-of the file where the binary will be written
+<von> is the vanadium object name of the binary to download <filename> is the
+name of the file where the binary will be written
 
 Binary Upload
 
@@ -84,18 +84,18 @@
 Usage:
    binary upload <von> <filename>
 
-<von> is the veyron object name of the binary to upload <filename> is the name
+<von> is the vanadium object name of the binary to upload <filename> is the name
 of the file or directory to upload
 
 Binary Url
 
-Connect to the binary repository and fetch the download URL for the given veyron
-object name.
+Connect to the binary repository and fetch the download URL for the given
+vanadium object name.
 
 Usage:
    binary url <von>
 
-<von> is the veyron object name of the binary repository
+<von> is the vanadium object name of the binary repository
 
 Binary Help
 
diff --git a/cmd/binary/impl.go b/cmd/binary/impl.go
index 2739c01..259ccc4 100644
--- a/cmd/binary/impl.go
+++ b/cmd/binary/impl.go
@@ -14,7 +14,7 @@
 	Short:    "Delete a binary",
 	Long:     "Delete connects to the binary repository and deletes the specified binary",
 	ArgsName: "<von>",
-	ArgsLong: "<von> is the veyron object name of the binary to delete",
+	ArgsLong: "<von> is the vanadium object name of the binary to delete",
 }
 
 func runDelete(cmd *cmdline.Command, args []string) error {
@@ -39,7 +39,7 @@
 `,
 	ArgsName: "<von> <filename>",
 	ArgsLong: `
-<von> is the veyron object name of the binary to download
+<von> is the vanadium object name of the binary to download
 <filename> is the name of the file where the binary will be written
 `,
 }
@@ -66,7 +66,7 @@
 `,
 	ArgsName: "<von> <filename>",
 	ArgsLong: `
-<von> is the veyron object name of the binary to upload
+<von> is the vanadium object name of the binary to upload
 <filename> is the name of the file or directory to upload
 `,
 }
@@ -100,9 +100,9 @@
 	Run:      runURL,
 	Name:     "url",
 	Short:    "Fetch a download URL",
-	Long:     "Connect to the binary repository and fetch the download URL for the given veyron object name.",
+	Long:     "Connect to the binary repository and fetch the download URL for the given vanadium object name.",
 	ArgsName: "<von>",
-	ArgsLong: "<von> is the veyron object name of the binary repository",
+	ArgsLong: "<von> is the vanadium object name of the binary repository",
 }
 
 func runURL(cmd *cmdline.Command, args []string) error {
@@ -121,9 +121,9 @@
 func root() *cmdline.Command {
 	return &cmdline.Command{
 		Name:  "binary",
-		Short: "Tool for interacting with the veyron binary repository",
+		Short: "Tool for interacting with the vanadium binary repository",
 		Long: `
-The binary tool facilitates interaction with the veyron binary repository.
+The binary tool facilitates interaction with the vanadium binary repository.
 `,
 		Children: []*cmdline.Command{cmdDelete, cmdDownload, cmdUpload, cmdURL},
 	}
diff --git a/cmd/build/doc.go b/cmd/build/doc.go
index f0fef3a..68a70d9 100644
--- a/cmd/build/doc.go
+++ b/cmd/build/doc.go
@@ -2,13 +2,13 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The build tool tool facilitates interaction with the veyron build server.
+The build tool tool facilitates interaction with the vanadium build server.
 
 Usage:
    build <command>
 
 The build commands are:
-   build       Build veyron Go packages
+   build       Build vanadium Go packages
    help        Display help for commands or topics
 Run "build help [command]" for command usage.
 
@@ -54,7 +54,7 @@
 
 Build Build
 
-Build veyron Go packages using a remote build server. The command collects all
+Build vanadium Go packages using a remote build server. The command collects all
 source code files that are not part of the Go standard library that the target
 packages depend on, sends them to a build server, and receives the built
 binaries.
@@ -62,7 +62,7 @@
 Usage:
    build build [flags] <name> <packages>
 
-<name> is a veyron object name of a build server <packages> is a list of
+<name> is a vanadium object name of a build server <packages> is a list of
 packages to build, specified as arguments for each command. The format is
 similar to the go tool.  In its simplest form each package is an import path;
 e.g. "veyron/tools/build". A package that ends with "..." does a wildcard match
diff --git a/cmd/build/impl.go b/cmd/build/impl.go
index 46a517d..b81d1a3 100644
--- a/cmd/build/impl.go
+++ b/cmd/build/impl.go
@@ -34,14 +34,14 @@
 
 var cmdRoot = &cmdline.Command{
 	Name:  "build",
-	Short: "Tool for interacting with the veyron build server",
+	Short: "Tool for interacting with the vanadium build server",
 	Long: `
-The build tool tool facilitates interaction with the veyron build server.
+The build tool tool facilitates interaction with the vanadium build server.
 `,
 	Children: []*cmdline.Command{cmdBuild},
 }
 
-// root returns a command that represents the root of the veyron tool.
+// root returns a command that represents the root of the vanadium tool.
 func root() *cmdline.Command {
 	return cmdRoot
 }
@@ -49,16 +49,16 @@
 var cmdBuild = &cmdline.Command{
 	Run:   runBuild,
 	Name:  "build",
-	Short: "Build veyron Go packages",
+	Short: "Build vanadium Go packages",
 	Long: `
-Build veyron Go packages using a remote build server. The command
+Build vanadium Go packages using a remote build server. The command
 collects all source code files that are not part of the Go standard
 library that the target packages depend on, sends them to a build
 server, and receives the built binaries.
 `,
 	ArgsName: "<name> <packages>",
 	ArgsLong: `
-<name> is a veyron object name of a build server
+<name> is a vanadium object name of a build server
 <packages> is a list of packages to build, specified as arguments for
 each command. The format is similar to the go tool.  In its simplest
 form each package is an import path; e.g. "veyron/tools/build". A
diff --git a/cmd/mgmt/device/doc.go b/cmd/mgmt/device/doc.go
index 231edde..59d5d21 100644
--- a/cmd/mgmt/device/doc.go
+++ b/cmd/mgmt/device/doc.go
@@ -80,9 +80,9 @@
 Usage:
    device install [flags] <device> <application>
 
-<device> is the veyron object name of the device manager's app service.
+<device> is the vanadium object name of the device manager's app service.
 
-<application> is the veyron object name of the application.
+<application> is the vanadium object name of the application.
 
 The device install flags are:
  -config={}
@@ -99,7 +99,7 @@
 Usage:
    device install-local [flags] <device> <title> [ENV=VAL ...] binary [--flag=val ...] [PACKAGES path ...]
 
-<device> is the veyron object name of the device manager's app service.
+<device> is the vanadium object name of the device manager's app service.
 
 <title> is the app title.
 
@@ -123,7 +123,7 @@
 Usage:
    device uninstall <installation>
 
-<installation> is the veyron object name of the application installation to
+<installation> is the vanadium object name of the application installation to
 uninstall.
 
 Device Start
@@ -133,7 +133,7 @@
 Usage:
    device start <application installation> <grant extension>
 
-<application installation> is the veyron object name of the application
+<application installation> is the vanadium object name of the application
 installation from which to start an instance.
 
 <grant extension> is used to extend the default blessing of the current
@@ -188,7 +188,7 @@
 Usage:
    device describe <device>
 
-<device> is the veyron object name of the device manager's device service.
+<device> is the vanadium object name of the device manager's device service.
 
 Device Claim
 
@@ -197,7 +197,7 @@
 Usage:
    device claim <device> <grant extension> <pairing token> <device publickey>
 
-<device> is the veyron object name of the device manager's device service.
+<device> is the vanadium object name of the device manager's device service.
 
 <grant extension> is used to extend the default blessing of the current
 principal when blessing the app instance.
@@ -215,7 +215,7 @@
 Usage:
    device stop <app instance>
 
-<app instance> is the veyron object name of the application instance to stop.
+<app instance> is the vanadium object name of the application instance to stop.
 
 Device Suspend
 
@@ -224,7 +224,8 @@
 Usage:
    device suspend <app instance>
 
-<app instance> is the veyron object name of the application instance to suspend.
+<app instance> is the vanadium object name of the application instance to
+suspend.
 
 Device Resume
 
@@ -233,7 +234,8 @@
 Usage:
    device resume <app instance>
 
-<app instance> is the veyron object name of the application instance to resume.
+<app instance> is the vanadium object name of the application instance to
+resume.
 
 Device Revert
 
@@ -242,7 +244,7 @@
 Usage:
    device revert <object>
 
-<object> is the veyron object name of the device manager or application
+<object> is the vanadium object name of the device manager or application
 installation to revert.
 
 Device Update
@@ -252,7 +254,7 @@
 Usage:
    device update <object>
 
-<object> is the veyron object name of the device manager or application
+<object> is the vanadium object name of the device manager or application
 installation or instance to update.
 
 Device Updateall
@@ -263,7 +265,7 @@
 Usage:
    device updateall <object name>
 
-<object name> is the veyron object name to update, as follows:
+<object name> is the vanadium object name to update, as follows:
 
 <devicename>/apps/apptitle/installationid/instanceid: updates the given
 instance, suspending/resuming it if running
@@ -282,7 +284,7 @@
 Usage:
    device debug <device>
 
-<device> is the veyron object name of an app installation or instance.
+<device> is the vanadium object name of an app installation or instance.
 
 Device Acl
 
diff --git a/cmd/mgmt/device/impl/impl.go b/cmd/mgmt/device/impl/impl.go
index da5b736..2a772a8 100644
--- a/cmd/mgmt/device/impl/impl.go
+++ b/cmd/mgmt/device/impl/impl.go
@@ -58,9 +58,9 @@
 	Long:     "Install the given application.",
 	ArgsName: "<device> <application>",
 	ArgsLong: `
-<device> is the veyron object name of the device manager's app service.
+<device> is the vanadium object name of the device manager's app service.
 
-<application> is the veyron object name of the application.
+<application> is the vanadium object name of the application.
 `,
 }
 
@@ -89,7 +89,7 @@
 	Long:     "Uninstall the given application installation.",
 	ArgsName: "<installation>",
 	ArgsLong: `
-<installation> is the veyron object name of the application installation to
+<installation> is the vanadium object name of the application installation to
 uninstall.
 `,
 }
@@ -113,7 +113,7 @@
 	Long:     "Start an instance of the given application.",
 	ArgsName: "<application installation> <grant extension>",
 	ArgsLong: `
-<application installation> is the veyron object name of the
+<application installation> is the vanadium object name of the
 application installation from which to start an instance.
 
 <grant extension> is used to extend the default blessing of the
@@ -187,7 +187,7 @@
 	Long:     "Claim the device.",
 	ArgsName: "<device> <grant extension> <pairing token> <device publickey>",
 	ArgsLong: `
-<device> is the veyron object name of the device manager's device service.
+<device> is the vanadium object name of the device manager's device service.
 
 <grant extension> is used to extend the default blessing of the
 current principal when blessing the app instance.
@@ -236,7 +236,7 @@
 	Long:     "Describe the device.",
 	ArgsName: "<device>",
 	ArgsLong: `
-<device> is the veyron object name of the device manager's device service.`,
+<device> is the vanadium object name of the device manager's device service.`,
 }
 
 func runDescribe(cmd *cmdline.Command, args []string) error {
@@ -259,7 +259,7 @@
 	Long:     "Update the device manager or application",
 	ArgsName: "<object>",
 	ArgsLong: `
-<object> is the veyron object name of the device manager or application
+<object> is the vanadium object name of the device manager or application
 installation or instance to update.`,
 }
 
@@ -282,7 +282,7 @@
 	Long:     "Revert the device manager or application to its previous version",
 	ArgsName: "<object>",
 	ArgsLong: `
-<object> is the veyron object name of the device manager or application
+<object> is the vanadium object name of the device manager or application
 installation to revert.`,
 }
 
@@ -305,7 +305,7 @@
 	Long:     "Debug the device.",
 	ArgsName: "<device>",
 	ArgsLong: `
-<device> is the veyron object name of an app installation or instance.`,
+<device> is the vanadium object name of an app installation or instance.`,
 }
 
 func runDebug(cmd *cmdline.Command, args []string) error {
diff --git a/cmd/mgmt/device/impl/instance_impl.go b/cmd/mgmt/device/impl/instance_impl.go
index d0a5783..99b6210 100644
--- a/cmd/mgmt/device/impl/instance_impl.go
+++ b/cmd/mgmt/device/impl/instance_impl.go
@@ -16,7 +16,7 @@
 	Long:     "Stop the given application instance.",
 	ArgsName: "<app instance>",
 	ArgsLong: `
-<app instance> is the veyron object name of the application instance to stop.`,
+<app instance> is the vanadium object name of the application instance to stop.`,
 }
 
 func runStop(cmd *cmdline.Command, args []string) error {
@@ -39,7 +39,7 @@
 	Long:     "Suspend the given application instance.",
 	ArgsName: "<app instance>",
 	ArgsLong: `
-<app instance> is the veyron object name of the application instance to suspend.`,
+<app instance> is the vanadium object name of the application instance to suspend.`,
 }
 
 func runSuspend(cmd *cmdline.Command, args []string) error {
@@ -62,7 +62,7 @@
 	Long:     "Resume the given application instance.",
 	ArgsName: "<app instance>",
 	ArgsLong: `
-<app instance> is the veyron object name of the application instance to resume.`,
+<app instance> is the vanadium object name of the application instance to resume.`,
 }
 
 func runResume(cmd *cmdline.Command, args []string) error {
diff --git a/cmd/mgmt/device/impl/local_install.go b/cmd/mgmt/device/impl/local_install.go
index 5c4aaaf..ceb2fc4 100644
--- a/cmd/mgmt/device/impl/local_install.go
+++ b/cmd/mgmt/device/impl/local_install.go
@@ -34,7 +34,7 @@
 	Long:     "Install the given application, specified using a local path.",
 	ArgsName: "<device> <title> [ENV=VAL ...] binary [--flag=val ...] [PACKAGES path ...]",
 	ArgsLong: `
-<device> is the veyron object name of the device manager's app service.
+<device> is the vanadium object name of the device manager's app service.
 
 <title> is the app title.
 
diff --git a/cmd/mgmt/device/impl/updateall.go b/cmd/mgmt/device/impl/updateall.go
index 7976bc9..39b92b0 100644
--- a/cmd/mgmt/device/impl/updateall.go
+++ b/cmd/mgmt/device/impl/updateall.go
@@ -26,7 +26,7 @@
 	Long:     "Given a name that can refer to an app instance or app installation or app or all apps on a device, updates all installations and instances under that name",
 	ArgsName: "<object name>",
 	ArgsLong: `
-<object name> is the veyron object name to update, as follows:
+<object name> is the vanadium object name to update, as follows:
 
 <devicename>/apps/apptitle/installationid/instanceid: updates the given instance, suspending/resuming it if running
 
diff --git a/cmd/mgmt/shell/lib/shell.sh b/cmd/mgmt/shell/lib/shell.sh
index aa2319c..ff8fc8d 100755
--- a/cmd/mgmt/shell/lib/shell.sh
+++ b/cmd/mgmt/shell/lib/shell.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# The shell library is used to execute veyron shell scripts.
+# The shell library is used to execute vanadium shell scripts.
 
 # IMPORTANT: If your script registers its own "trap" handler, that handler must
 # call shell::at_exit to clean up all temporary files and directories created by
diff --git a/cmd/mgmt/vbash b/cmd/mgmt/vbash
index a1614b9..5aec109 100755
--- a/cmd/mgmt/vbash
+++ b/cmd/mgmt/vbash
@@ -171,7 +171,7 @@
   fi
 
   # Use a custom rcfile to optionally get a blessing and also to modify the
-  # shell prompt to include the default veyron blessing.
+  # shell prompt to include the default vanadium blessing.
   cat <<EOF > "${INSTALL_DIR}/rcfile"
 if [[ Darwin == "$(uname)" ]]; then
   if [[ -r /etc/profile ]]; then . /etc/profile; fi
diff --git a/cmd/mounttable/doc.go b/cmd/mounttable/doc.go
index da73379..e4fcee2 100644
--- a/cmd/mounttable/doc.go
+++ b/cmd/mounttable/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The mounttable tool facilitates interaction with a Veyron mount table.
+The mounttable tool facilitates interaction with a Vanadium mount table.
 
 Usage:
    mounttable <command>
diff --git a/cmd/mounttable/impl.go b/cmd/mounttable/impl.go
index 060d854..15b161a 100644
--- a/cmd/mounttable/impl.go
+++ b/cmd/mounttable/impl.go
@@ -218,9 +218,9 @@
 	cmdMount.Flags.Var(&flagMountBlessingPatterns, "blessing_pattern", "blessing pattern that matches the blessings of the server being mounted. Can be specified multiple times to add multiple patterns. If none is provided, the server will be contacted to determine this value.")
 	return &cmdline.Command{
 		Name:  "mounttable",
-		Short: "Tool for interacting with a Veyron mount table",
+		Short: "Tool for interacting with a Vanadium mount table",
 		Long: `
-The mounttable tool facilitates interaction with a Veyron mount table.
+The mounttable tool facilitates interaction with a Vanadium mount table.
 `,
 		Children: []*cmdline.Command{cmdGlob, cmdMount, cmdUnmount, cmdResolveStep},
 	}
diff --git a/cmd/namespace/doc.go b/cmd/namespace/doc.go
index 77191e1..31a29db 100644
--- a/cmd/namespace/doc.go
+++ b/cmd/namespace/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The namespace tool facilitates interaction with the Veyron namespace.
+The namespace tool facilitates interaction with the Vanadium namespace.
 
 The namespace roots are set from the command line via veyron.namespace.root
 options or from environment variables that have a name starting with
diff --git a/cmd/namespace/impl.go b/cmd/namespace/impl.go
index b12d76d..dfbd410 100644
--- a/cmd/namespace/impl.go
+++ b/cmd/namespace/impl.go
@@ -219,9 +219,9 @@
 	cmdMount.Flags.Var(&flagMountBlessings, "blessing_pattern", "Blessing pattern that is matched by the blessings of the server being mounted. If none is provided, the server will be contacted to determine this value.")
 	return &cmdline.Command{
 		Name:  "namespace",
-		Short: "Tool for interacting with the Veyron namespace",
+		Short: "Tool for interacting with the Vanadium namespace",
 		Long: `
-The namespace tool facilitates interaction with the Veyron namespace.
+The namespace tool facilitates interaction with the Vanadium namespace.
 
 The namespace roots are set from the command line via veyron.namespace.root options or from environment variables that have a name
 starting with NAMESPACE_ROOT, e.g. NAMESPACE_ROOT, NAMESPACE_ROOT_2,
diff --git a/cmd/principal/bless.go b/cmd/principal/bless.go
index bd7e84a..ba432a4 100644
--- a/cmd/principal/bless.go
+++ b/cmd/principal/bless.go
@@ -106,7 +106,7 @@
 		blessed, ok := <-blessedChan
 		if !ok {
 			tmplArgs.ErrShort = "No blessings received"
-			tmplArgs.ErrLong = "Unable to obtain blessings from the Veyron service"
+			tmplArgs.ErrLong = "Unable to obtain blessings from the Vanadium service"
 			return
 		}
 		tmplArgs.Blessings = blessed
@@ -155,7 +155,7 @@
 <html>
 <head>
 <meta charset="UTF-8">
-<title>Veyron Identity: Google</title>
+<title>Vanadium Identity: Google</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 {{if .Blessings}}
diff --git a/cmd/principal/doc.go b/cmd/principal/doc.go
index 7cde98b..7779a96 100644
--- a/cmd/principal/doc.go
+++ b/cmd/principal/doc.go
@@ -14,7 +14,7 @@
    create        Create a new principal and persist it into a directory
    fork          Fork a new principal from the principal that this tool is
                  running as and persist it into a directory
-   seekblessings Seek blessings from a web-based Veyron blessing service
+   seekblessings Seek blessings from a web-based Vanadium blessing service
    recvblessings Receive blessings sent by another principal and use them as the
                  default
    dump          Dump out information about the principal
@@ -127,7 +127,7 @@
 
 Principal Seekblessings
 
-Seeks blessings from a web-based Veyron blesser which requires the caller to
+Seeks blessings from a web-based Vanadium blesser which requires the caller to
 first authenticate with Google using OAuth. Simply run the command to see what
 happens.
 
diff --git a/cmd/principal/main.go b/cmd/principal/main.go
index 03f4d24..ce01ec6 100644
--- a/cmd/principal/main.go
+++ b/cmd/principal/main.go
@@ -554,9 +554,9 @@
 
 	cmdSeekBlessings = &cmdline.Command{
 		Name:  "seekblessings",
-		Short: "Seek blessings from a web-based Veyron blessing service",
+		Short: "Seek blessings from a web-based Vanadium blessing service",
 		Long: `
-Seeks blessings from a web-based Veyron blesser which
+Seeks blessings from a web-based Vanadium blesser which
 requires the caller to first authenticate with Google using OAuth. Simply
 run the command to see what happens.
 
@@ -577,7 +577,7 @@
 			defer close(blessedChan)
 			macaroonChan, err := getMacaroonForBlessRPC(flagSeekBlessingsFrom, blessedChan, flagSeekBlessingsBrowser)
 			if err != nil {
-				return fmt.Errorf("failed to get macaroon from Veyron blesser: %v", err)
+				return fmt.Errorf("failed to get macaroon from Vanadium blesser: %v", err)
 			}
 
 			blessings, err := exchangeMacaroonForBlessing(ctx, macaroonChan)
@@ -734,7 +734,7 @@
 
 	root := &cmdline.Command{
 		Name:  "principal",
-		Short: "Create and manage veyron principals",
+		Short: "Create and manage vanadium principals",
 		Long: `
 The principal tool helps create and manage blessings and the set of trusted
 roots bound to a principal.
diff --git a/cmd/profile/doc.go b/cmd/profile/doc.go
index 71c65c9..4b46f86 100644
--- a/cmd/profile/doc.go
+++ b/cmd/profile/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The profile tool facilitates interaction with the veyron profile repository.
+The profile tool facilitates interaction with the vanadium profile repository.
 
 Usage:
    profile <command>
diff --git a/cmd/profile/impl.go b/cmd/profile/impl.go
index 92b1fc9..463eeca 100644
--- a/cmd/profile/impl.go
+++ b/cmd/profile/impl.go
@@ -147,9 +147,9 @@
 func root() *cmdline.Command {
 	return &cmdline.Command{
 		Name:  "profile",
-		Short: "Tool for interacting with the veyron profile repository",
+		Short: "Tool for interacting with the vanadium profile repository",
 		Long: `
-The profile tool facilitates interaction with the veyron profile repository.
+The profile tool facilitates interaction with the vanadium profile repository.
 `,
 		Children: []*cmdline.Command{cmdLabel, cmdDescription, cmdSpecification, cmdPut, cmdRemove},
 	}
diff --git a/cmd/vdl/doc.go b/cmd/vdl/doc.go
index 4e86dee..4210ce5 100644
--- a/cmd/vdl/doc.go
+++ b/cmd/vdl/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The vdl tool manages veyron VDL source code.  It's similar to the go tool used
+The vdl tool manages vanadium VDL source code.  It's similar to the go tool used
 for managing Go source code.
 
 Usage:
diff --git a/cmd/vdl/main.go b/cmd/vdl/main.go
index bcd20ee..63ca8e5 100644
--- a/cmd/vdl/main.go
+++ b/cmd/vdl/main.go
@@ -351,9 +351,9 @@
 // Root returns the root command for the VDL tool.
 var cmdVDL = &cmdline.Command{
 	Name:  "vdl",
-	Short: "Manage veyron VDL source code",
+	Short: "Manage vanadium VDL source code",
 	Long: `
-The vdl tool manages veyron VDL source code.  It's similar to the go tool used
+The vdl tool manages vanadium VDL source code.  It's similar to the go tool used
 for managing Go source code.
 `,
 	Children: []*cmdline.Command{cmdGenerate, cmdCompile, cmdAudit, cmdList},
diff --git a/cmd/vom/doc.go b/cmd/vom/doc.go
index 2f49d3d..6c17f07 100644
--- a/cmd/vom/doc.go
+++ b/cmd/vom/doc.go
@@ -2,7 +2,7 @@
 // DO NOT UPDATE MANUALLY
 
 /*
-The vom tool helps debug the Veyron Object Marshaling (vom) protocol.
+The vom tool helps debug the Vanadium Object Marshaling (vom) protocol.
 
 Usage:
    vom <command>
diff --git a/cmd/vom/vom.go b/cmd/vom/vom.go
index 4b55635..781092a 100644
--- a/cmd/vom/vom.go
+++ b/cmd/vom/vom.go
@@ -24,9 +24,9 @@
 
 var cmdVom = &cmdline.Command{
 	Name:  "vom",
-	Short: "Veyron Object Marshaling debugging tool",
+	Short: "Vanadium Object Marshaling debugging tool",
 	Long: `
-The vom tool helps debug the Veyron Object Marshaling (vom) protocol.
+The vom tool helps debug the Vanadium Object Marshaling (vom) protocol.
 `,
 	Children: []*cmdline.Command{cmdDecode, cmdDump},
 }
diff --git a/examples/tunnel/vsh/main.go b/examples/tunnel/vsh/main.go
index ef4a0ed..2b4dfa9 100644
--- a/examples/tunnel/vsh/main.go
+++ b/examples/tunnel/vsh/main.go
@@ -36,7 +36,7 @@
 func init() {
 	flag.Usage = func() {
 		bname := path.Base(os.Args[0])
-		fmt.Fprintf(os.Stderr, `%s: Veyron SHell.
+		fmt.Fprintf(os.Stderr, `%s: Vanadium Shell.
 
 This tool is used to run shell commands or an interactive shell on a remote
 tunneld service.
diff --git a/lib/exec/child.go b/lib/exec/child.go
index ea02bf8..d90df9e 100644
--- a/lib/exec/child.go
+++ b/lib/exec/child.go
@@ -25,7 +25,7 @@
 	Secret string
 	// statusPipe is a pipe that is used to notify the parent that the child
 	// process has started successfully. It is meant to be invoked by the
-	// veyron framework to notify the parent that the child process has
+	// vanadium framework to notify the parent that the child process has
 	// successfully started.
 	statusPipe *os.File
 
diff --git a/lib/flags/consts/consts.go b/lib/flags/consts/consts.go
index 56af7d8..b54213f 100644
--- a/lib/flags/consts/consts.go
+++ b/lib/flags/consts/consts.go
@@ -7,7 +7,7 @@
 	// certificates etc.)
 	VeyronCredentials = "VEYRON_CREDENTIALS"
 	// Prefix of all environment variables that point to roots of the
-	// veyron namespace, used to resolve non-rooted object names.
+	// vanadium namespace, used to resolve non-rooted object names.
 	NamespaceRootPrefix = "NAMESPACE_ROOT"
 	// Environment variable containing a comma-separated list of i18n
 	// catalogue files to be loaded at startup.
diff --git a/lib/flags/doc.go b/lib/flags/doc.go
index b752f0a..6c30f0c 100644
--- a/lib/flags/doc.go
+++ b/lib/flags/doc.go
@@ -12,7 +12,7 @@
 // and hence are not forced onto the command line unless the caller passes in
 // flag.CommandLine as the flag.FlagSet to use.
 //
-// In general, this package will be used by veyron profiles and the runtime
+// In general, this package will be used by vanadium profiles and the runtime
 // implementations, but can also be used by any application that wants access to
 // the flags and environment variables it supports.
 package flags
diff --git a/lib/vdl/parse/grammar.y b/lib/vdl/parse/grammar.y
index 6d19942..745185b 100644
--- a/lib/vdl/parse/grammar.y
+++ b/lib/vdl/parse/grammar.y
@@ -1,4 +1,4 @@
-// Yacc grammar file for the veyron VDL langage.
+// Yacc grammar file for the vanadium VDL langage.
 // http://goto/veyron:vdl
 //
 // Similar to Go, the formal grammar uses semicolons ';' as terminators, but
diff --git a/profiles/internal/ipc/stream/doc.go b/profiles/internal/ipc/stream/doc.go
index 65f070b..e86e36c 100644
--- a/profiles/internal/ipc/stream/doc.go
+++ b/profiles/internal/ipc/stream/doc.go
@@ -1,4 +1,4 @@
-// Package stream implements authenticated byte streams to veyron endpoints.
+// Package stream implements authenticated byte streams to vanadium endpoints.
 //
 // It is split into multiple sub-packages in an attempt to keep the code
 // healthier by limiting the dependencies between objects. Most users should not
diff --git a/profiles/internal/ipc/stream/model.go b/profiles/internal/ipc/stream/model.go
index ddbc8e5..5bee977 100644
--- a/profiles/internal/ipc/stream/model.go
+++ b/profiles/internal/ipc/stream/model.go
@@ -16,9 +16,9 @@
 type Flow interface {
 	io.ReadWriteCloser
 
-	// LocalEndpoint returns the local veyron Endpoint
+	// LocalEndpoint returns the local vanadium Endpoint
 	LocalEndpoint() naming.Endpoint
-	// RemoteEndpoint returns the remote veyron Endpoint
+	// RemoteEndpoint returns the remote vanadium Endpoint
 	RemoteEndpoint() naming.Endpoint
 	// LocalPrincipal returns the Principal at the local end of the flow that has authenticated with the remote end.
 	LocalPrincipal() security.Principal
diff --git a/profiles/internal/ipc/stream/proxy/doc.go b/profiles/internal/ipc/stream/proxy/doc.go
index 30967ec..aae07f0 100644
--- a/profiles/internal/ipc/stream/proxy/doc.go
+++ b/profiles/internal/ipc/stream/proxy/doc.go
@@ -1,6 +1,6 @@
 // Package proxy implements a proxy for the stream layer.
 //
-// Each process in veyron is uniquely identified by a routing id
+// Each process in vanadium is uniquely identified by a routing id
 // (naming.RoutingID). A proxy routes messages
 // (veyron/profiles/internal/ipc/stream/message) it receives on a network connection
 // (net.Conn) to the network connection on which the destination process
diff --git a/profiles/internal/rt/mgmt.go b/profiles/internal/rt/mgmt.go
index 935120c..a22f56b 100644
--- a/profiles/internal/rt/mgmt.go
+++ b/profiles/internal/rt/mgmt.go
@@ -18,7 +18,7 @@
 	handle, err := exec.GetChildHandle()
 	if err == exec.ErrNoVersion {
 		// Do not initialize the mgmt runtime if the process has not
-		// been started through the veyron exec library by a device
+		// been started through the vanadium exec library by a device
 		// manager.
 		return nil
 	} else if err != nil {
diff --git a/profiles/internal/testing/concurrency/doc.go b/profiles/internal/testing/concurrency/doc.go
index bfb9f05..5bb7217 100644
--- a/profiles/internal/testing/concurrency/doc.go
+++ b/profiles/internal/testing/concurrency/doc.go
@@ -1,5 +1,5 @@
 // Package concurrency implements a framework for systematic testing
-// of concurrent veyron Go programs. The framework implements the
+// of concurrent vanadium Go programs. The framework implements the
 // ideas described in "Systematic and Scalable Testing of Concurrent
 // Programs":
 //
diff --git a/profiles/internal/util.go b/profiles/internal/util.go
index ea659e6..688c0a6 100644
--- a/profiles/internal/util.go
+++ b/profiles/internal/util.go
@@ -21,10 +21,10 @@
 	handle, err := exec.GetChildHandle()
 	switch err {
 	case exec.ErrNoVersion:
-		// The process has not been started through the veyron exec
+		// The process has not been started through the vanadium exec
 		// library. No further action is needed.
 	case nil:
-		// The process has been started through the veyron exec
+		// The process has been started through the vanadium exec
 		// library.
 	default:
 		return err
diff --git a/security/doc.go b/security/doc.go
index 14bd17c..00e7c6a 100644
--- a/security/doc.go
+++ b/security/doc.go
@@ -1,2 +1,2 @@
-// Package security provides utility functions for creating/using veyron security primitives.
+// Package security provides utility functions for creating/using vanadium security primitives.
 package security
diff --git a/services/identity/identity.vdl b/services/identity/identity.vdl
index 8f0a722..81c2397 100644
--- a/services/identity/identity.vdl
+++ b/services/identity/identity.vdl
@@ -1,4 +1,4 @@
-// Package identity defines services for identity providers in the veyron ecosystem.
+// Package identity defines services for identity providers in the vanadium ecosystem.
 package identity
 
 import "v.io/v23/security"
diff --git a/services/identity/identity.vdl.go b/services/identity/identity.vdl.go
index 4523199..d86092b 100644
--- a/services/identity/identity.vdl.go
+++ b/services/identity/identity.vdl.go
@@ -1,7 +1,7 @@
 // This file was auto-generated by the vanadium vdl tool.
 // Source: identity.vdl
 
-// Package identity defines services for identity providers in the veyron ecosystem.
+// Package identity defines services for identity providers in the vanadium ecosystem.
 package identity
 
 import (
diff --git a/services/identity/identityd/main.go b/services/identity/identityd/main.go
index 920f263..83ca1d3 100644
--- a/services/identity/identityd/main.go
+++ b/services/identity/identityd/main.go
@@ -31,7 +31,7 @@
 	emailClassifier     util.EmailClassifier
 
 	// Flags controlling the HTTP server
-	host      = flag.String("host", defaultHost(), "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Veyron identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
+	host      = flag.String("host", defaultHost(), "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Vanadium identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
 	httpaddr  = flag.String("httpaddr", "localhost:8125", "Address on which the HTTP server listens on.")
 	tlsconfig = flag.String("tlsconfig", "", "Comma-separated list of TLS certificate and private key files, in that order. This must be provided.")
 )
diff --git a/services/identity/identityd_test/main.go b/services/identity/identityd_test/main.go
index 04d5e83..d7cec63 100644
--- a/services/identity/identityd_test/main.go
+++ b/services/identity/identityd_test/main.go
@@ -22,7 +22,7 @@
 
 var (
 	// Flags controlling the HTTP server
-	host      = flag.String("host", "localhost", "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Veyron identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
+	host      = flag.String("host", "localhost", "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Vanadium identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
 	httpaddr  = flag.String("httpaddr", "localhost:0", "Address on which the HTTP server listens on.")
 	tlsconfig = flag.String("tlsconfig", "", "Comma-separated list of TLS certificate and private key files, in that order. This must be provided.")
 )
diff --git a/services/identity/server/identityd.go b/services/identity/server/identityd.go
index 762ba98..37f6277 100644
--- a/services/identity/server/identityd.go
+++ b/services/identity/server/identityd.go
@@ -140,7 +140,7 @@
 
 	ipcServer, published, err := s.setupServices(ctx, listenSpec, macaroonKey)
 	if err != nil {
-		vlog.Fatalf("Failed to setup veyron services for blessing: %v", err)
+		vlog.Fatalf("Failed to setup vanadium services for blessing: %v", err)
 	}
 
 	externalHttpaddr := httpaddress(host, httpaddr)
@@ -220,7 +220,7 @@
 	}
 	dispatcher := newDispatcher(macaroonKey, oauthBlesserParams(s.oauthBlesserParams, rootedObjectAddr))
 	if err := server.ServeDispatcher(objectAddr, dispatcher); err != nil {
-		return nil, nil, fmt.Errorf("failed to start Veyron services: %v", err)
+		return nil, nil, fmt.Errorf("failed to start Vanadium services: %v", err)
 	}
 	vlog.Infof("Blessing and discharger services will be published at %v", rootedObjectAddr)
 	return server, []string{rootedObjectAddr}, nil
@@ -287,15 +287,15 @@
 <html>
 <head>
 <meta charset="UTF-8">
-<title>Veyron Identity Server</title>
+<title>Vanadium Identity Server</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 </head>
 <body>
 <div class="container">
-<div class="page-header"><h2>{{.Self}}</h2><h4>A Veyron Blessing Provider</h4></div>
+<div class="page-header"><h2>{{.Self}}</h2><h4>A Vanadium Blessing Provider</h4></div>
 <div class="well">
-This is a Veyron identity provider that provides blessings with the name prefix <mark>{{.Self}}</mark>.
+This is a Vanadium identity provider that provides blessings with the name prefix <mark>{{.Self}}</mark>.
 <br/>
 The public key of this provider is {{.Self.PublicKey}}.
 <br/>
@@ -306,10 +306,10 @@
 <div class="well">
 <ul>
 {{if .GoogleServers}}
-<li>Blessings (using Google OAuth to fetch an email address) are provided via Veyron RPCs to: <tt>{{range .GoogleServers}}{{.}}{{end}}</tt></li>
+<li>Blessings (using Google OAuth to fetch an email address) are provided via Vanadium RPCs to: <tt>{{range .GoogleServers}}{{.}}{{end}}</tt></li>
 {{end}}
 {{if .DischargeServers}}
-<li>RevocationCaveat Discharges are provided via Veyron RPCs to: <tt>{{range .DischargeServers}}{{.}}{{end}}</tt></li>
+<li>RevocationCaveat Discharges are provided via Vanadium RPCs to: <tt>{{range .DischargeServers}}{{.}}{{end}}</tt></li>
 {{end}}
 {{if .ListBlessingsRoute}}
 <li>You can <a class="btn btn-xs btn-primary" href="/google/{{.ListBlessingsRoute}}">enumerate</a> blessings provided with your
diff --git a/services/mgmt/device/deviced/main.go b/services/mgmt/device/deviced/main.go
index 21a6513..e2af6d4 100644
--- a/services/mgmt/device/deviced/main.go
+++ b/services/mgmt/device/deviced/main.go
@@ -16,7 +16,7 @@
 
 	rootCmd := cmdline.Command{
 		Name:  "deviced",
-		Short: "Veyron device manager setup",
+		Short: "Vanadium device manager setup",
 		Long: `
 deviced can be used to launch, configure, or manage the device manager.
 `,
diff --git a/services/mgmt/device/impl/association_state.go b/services/mgmt/device/impl/association_state.go
index 45709a4..e3700e9 100644
--- a/services/mgmt/device/impl/association_state.go
+++ b/services/mgmt/device/impl/association_state.go
@@ -11,7 +11,7 @@
 )
 
 // BlessingSystemAssociationStore manages a persisted association between
-// Veyron blessings and system account names.
+// Vanadium blessings and system account names.
 type BlessingSystemAssociationStore interface {
 	// SystemAccountForBlessings returns a system name from the blessing to
 	// system name association store if one exists for any of the listed
diff --git a/services/mgmt/device/impl/device_installer.go b/services/mgmt/device/impl/device_installer.go
index 1965d92..618b172 100644
--- a/services/mgmt/device/impl/device_installer.go
+++ b/services/mgmt/device/impl/device_installer.go
@@ -66,7 +66,7 @@
 // dmRoot is the directory name where the device manager installs itself.
 const dmRoot = "dmroot"
 
-// InstallFrom takes a veyron object name denoting an application service where
+// InstallFrom takes a vanadium object name denoting an application service where
 // a device manager application envelope can be obtained.  It downloads the
 // latest version of the device manager and installs it.
 func InstallFrom(origin string) error {
@@ -97,7 +97,7 @@
 }
 
 // VeyronEnvironment returns only the environment variables that are specific
-// to the Veyron system.
+// to the Vanadium system.
 func VeyronEnvironment(env []string) []string {
 	return filterEnvironment(env, allowedVarsRE, deniedVarsRE)
 }
diff --git a/services/mgmt/device/impl/impl_test.go b/services/mgmt/device/impl/impl_test.go
index 2e709fc..b3978bd 100644
--- a/services/mgmt/device/impl/impl_test.go
+++ b/services/mgmt/device/impl/impl_test.go
@@ -97,7 +97,7 @@
 }
 
 // TestSuidHelper is testing boilerplate for suidhelper that does not
-// create a runtime because the suidhelper is not a Veyron application.
+// create a runtime because the suidhelper is not a Vanadium application.
 func TestSuidHelper(t *testing.T) {
 	if os.Getenv("VEYRON_SUIDHELPER_TEST") != "1" {
 		return
diff --git a/services/mgmt/pprof/client/proxy.go b/services/mgmt/pprof/client/proxy.go
index 8f5472e..e3af843 100644
--- a/services/mgmt/pprof/client/proxy.go
+++ b/services/mgmt/pprof/client/proxy.go
@@ -1,7 +1,7 @@
-// Package client implement a client-side proxy of a veyron server's pprof
+// Package client implement a client-side proxy of a vanadium server's pprof
 // interface.
 // It is functionally equivalent to http://golang.org/pkg/net/http/pprof/,
-// except that the data comes from a remote veyron server, and the handlers are
+// except that the data comes from a remote vanadium server, and the handlers are
 // not registered in DefaultServeMux.
 package client
 
diff --git a/services/mgmt/profile/profile.vdl b/services/mgmt/profile/profile.vdl
index 7da1abe..a047a63 100644
--- a/services/mgmt/profile/profile.vdl
+++ b/services/mgmt/profile/profile.vdl
@@ -1,5 +1,5 @@
 // Package profile contains implementation and internal interfaces and
-// types used by the implementation of Veyron profiles.
+// types used by the implementation of Vanadium profiles.
 package profile
 
 import "v.io/v23/services/mgmt/build"
diff --git a/services/mgmt/profile/profile.vdl.go b/services/mgmt/profile/profile.vdl.go
index 89f96e2..7222e3a 100644
--- a/services/mgmt/profile/profile.vdl.go
+++ b/services/mgmt/profile/profile.vdl.go
@@ -2,7 +2,7 @@
 // Source: profile.vdl
 
 // Package profile contains implementation and internal interfaces and
-// types used by the implementation of Veyron profiles.
+// types used by the implementation of Vanadium profiles.
 package profile
 
 import (
diff --git a/services/mgmt/repository/repository.vdl b/services/mgmt/repository/repository.vdl
index fe59e3a..445c51e 100644
--- a/services/mgmt/repository/repository.vdl
+++ b/services/mgmt/repository/repository.vdl
@@ -1,5 +1,5 @@
 // Package repository contains implementation of the interface for
-// storing and serving various veyron management objects.
+// storing and serving various vanadium management objects.
 package repository
 
 import (
diff --git a/services/mgmt/repository/repository.vdl.go b/services/mgmt/repository/repository.vdl.go
index 5e13811..29701eb 100644
--- a/services/mgmt/repository/repository.vdl.go
+++ b/services/mgmt/repository/repository.vdl.go
@@ -2,7 +2,7 @@
 // Source: repository.vdl
 
 // Package repository contains implementation of the interface for
-// storing and serving various veyron management objects.
+// storing and serving various vanadium management objects.
 package repository
 
 import (
diff --git a/services/mgmt/sysinit/init_linux.go b/services/mgmt/sysinit/init_linux.go
index d258c77..9ddb062 100644
--- a/services/mgmt/sysinit/init_linux.go
+++ b/services/mgmt/sysinit/init_linux.go
@@ -93,7 +93,7 @@
 // the Upstart system.
 type UpstartService ServiceDescription
 
-var upstartTemplate = `# This file was auto-generated by the Veyron SysInit tool.
+var upstartTemplate = `# This file was auto-generated by the Vanadium SysInit tool.
 # Date: {{.Date}}
 #
 # {{.Service}} - {{.Description}}
@@ -164,7 +164,7 @@
 // the Systemd system.
 type SystemdService ServiceDescription
 
-const systemdTemplate = `# This file was auto-generated by the Veyron SysInit tool.
+const systemdTemplate = `# This file was auto-generated by the Vanadium SysInit tool.
 # Date: {{.Date}}
 #
 # {{.Service}} - {{.Description}}
@@ -261,7 +261,7 @@
 type DockerService ServiceDescription
 
 const dockerTemplate = `#!/bin/bash
-# This file was auto-generated by the Veyron SysInit tool.
+# This file was auto-generated by the Vanadium SysInit tool.
 # Date: {{.Date}}
 #
 # {{.Service}} - {{.Description}}
diff --git a/services/mgmt/sysinit/sysinit.go b/services/mgmt/sysinit/sysinit.go
index ca73c84..31c961d 100644
--- a/services/mgmt/sysinit/sysinit.go
+++ b/services/mgmt/sysinit/sysinit.go
@@ -1,6 +1,6 @@
 // Package sysinit provides config generation for a variety of platforms and
 // "init" systems such as upstart, systemd etc. It is intended purely for
-// bootstrapping into the Veyron system proper.
+// bootstrapping into the Vanadium system proper.
 package sysinit
 
 // InstallSystemInit defines the interface that all configs must implement.
diff --git a/services/mounttable/lib/neighborhood.go b/services/mounttable/lib/neighborhood.go
index 44d6364..0307070 100644
--- a/services/mounttable/lib/neighborhood.go
+++ b/services/mounttable/lib/neighborhood.go
@@ -82,13 +82,13 @@
 		return nil, errors.New("neighborhood couldn't determine a port to use")
 	}
 
-	// Start up MDNS, subscribe to the veyron service, and add us as a veyron service provider.
+	// Start up MDNS, subscribe to the vanadium service, and add us as a vanadium service provider.
 	mdns, err := mdns.NewMDNS(host, "", "", loopback, false)
 	if err != nil {
 		vlog.Errorf("mdns startup failed: %s", err)
 		return nil, err
 	}
-	vlog.VI(2).Infof("listening for service veyron on port %d", port)
+	vlog.VI(2).Infof("listening for service vanadium on port %d", port)
 	mdns.SubscribeToService("veyron")
 	mdns.AddService("veyron", "", port, txt...)
 
diff --git a/services/proxy/proxyd/main.go b/services/proxy/proxyd/main.go
index 9dae633..ac768bf 100644
--- a/services/proxy/proxyd/main.go
+++ b/services/proxy/proxyd/main.go
@@ -1,4 +1,4 @@
-// proxyd is a daemon that listens for connections from veyron services
+// proxyd is a daemon that listens for connections from vanadium services
 // (typically behind NATs) and proxies these services to the outside world.
 package main
 
diff --git a/services/security/groups/grpserverd/main.go b/services/security/groups/grpserverd/main.go
index cfe7e34..8a32284 100644
--- a/services/security/groups/grpserverd/main.go
+++ b/services/security/groups/grpserverd/main.go
@@ -17,7 +17,7 @@
 	"v.io/x/ref/services/security/groups/server"
 )
 
-// TODO(sadovsky): Perhaps this should be one of the standard Veyron flags.
+// TODO(sadovsky): Perhaps this should be one of the standard Vanadium flags.
 var (
 	name = flag.String("name", "", "Name to mount at.")
 )
diff --git a/services/wsprd/app/app.go b/services/wsprd/app/app.go
index 8270824..b02f0a4 100644
--- a/services/wsprd/app/app.go
+++ b/services/wsprd/app/app.go
@@ -1,5 +1,5 @@
 // The app package contains the struct that keeps per javascript app state and handles translating
-// javascript requests to veyron requests and vice versa.
+// javascript requests to vanadium requests and vice versa.
 package app
 
 import (
@@ -60,8 +60,8 @@
 	cancel context.CancelFunc
 }
 
-// Controller represents all the state of a Veyron Web App.  This is the struct
-// that is in charge performing all the veyron options.
+// Controller represents all the state of a Vanadium Web App.  This is the struct
+// that is in charge performing all the vanadium options.
 type Controller struct {
 	// Protects everything.
 	// TODO(bjornick): We need to split this up.
@@ -91,7 +91,7 @@
 	// A manager that Handles fetching and caching signature of remote services
 	signatureManager lib.SignatureManager
 
-	// We maintain multiple Veyron server per pipe for serving JavaScript
+	// We maintain multiple Vanadium server per pipe for serving JavaScript
 	// services.
 	servers map[uint32]*server.Server
 
@@ -314,7 +314,7 @@
 	stream.send(data, w)
 }
 
-// SendVeyronRequest makes a veyron request for the given flowId.  If signal is non-nil, it will receive
+// SendVeyronRequest makes a vanadium request for the given flowId.  If signal is non-nil, it will receive
 // the call object after it has been constructed.
 func (c *Controller) sendVeyronRequest(ctx *context.T, id int32, msg *VeyronRPCRequest, inArgs []interface{}, w lib.ClientWriter, stream *outstandingStream, span vtrace.Span) {
 	sig, err := c.getSignature(ctx, msg.Name)
@@ -447,7 +447,7 @@
 	server.HandleCaveatValidationResponse(id, data)
 }
 
-// HandleVeyronRequest starts a veyron rpc and returns before the rpc has been completed.
+// HandleVeyronRequest starts a vanadium rpc and returns before the rpc has been completed.
 func (c *Controller) HandleVeyronRequest(ctx *context.T, id int32, data string, w lib.ClientWriter) {
 	binbytes, err := hex.DecodeString(data)
 	if err != nil {
diff --git a/services/wsprd/app/app.vdl b/services/wsprd/app/app.vdl
index 455768c..08c57d6 100644
--- a/services/wsprd/app/app.vdl
+++ b/services/wsprd/app/app.vdl
@@ -1,5 +1,5 @@
 // The app package contains the struct that keeps per javascript app state and handles translating
-// javascript requests to veyron requests and vice versa.
+// javascript requests to vanadium requests and vice versa.
 package app
 
 import (
diff --git a/services/wsprd/app/app.vdl.go b/services/wsprd/app/app.vdl.go
index 59cf755..b5144c2 100644
--- a/services/wsprd/app/app.vdl.go
+++ b/services/wsprd/app/app.vdl.go
@@ -2,7 +2,7 @@
 // Source: app.vdl
 
 // The app package contains the struct that keeps per javascript app state and handles translating
-// javascript requests to veyron requests and vice versa.
+// javascript requests to vanadium requests and vice versa.
 package app
 
 import (
diff --git a/services/wsprd/browspr/browspr.go b/services/wsprd/browspr/browspr.go
index bec1889..f5e83d8 100644
--- a/services/wsprd/browspr/browspr.go
+++ b/services/wsprd/browspr/browspr.go
@@ -38,7 +38,7 @@
 	identd string,
 	wsNamespaceRoots []string) *Browspr {
 	if listenSpec.Proxy == "" {
-		vlog.Fatalf("a veyron proxy must be set")
+		vlog.Fatalf("a vanadium proxy must be set")
 	}
 	if identd == "" {
 		vlog.Fatalf("an identd server must be set")
@@ -131,7 +131,7 @@
 
 // Handler for creating an account in the principal manager.
 // A valid OAuth2 access token must be supplied in the request body,
-// which is exchanged for blessings from the veyron blessing server.
+// which is exchanged for blessings from the vanadium blessing server.
 // An account based on the blessings is then added to WSPR's principal
 // manager, and the set of blessing strings are returned to the client.
 func (b *Browspr) HandleAuthCreateAccountRpc(val *vdl.Value) (*vdl.Value, error) {
diff --git a/services/wsprd/principal/principal.go b/services/wsprd/principal/principal.go
index 405ef17..9d9efc0 100644
--- a/services/wsprd/principal/principal.go
+++ b/services/wsprd/principal/principal.go
@@ -1,5 +1,5 @@
 // Package principal implements a principal manager that maps origins to
-// veyron principals.
+// vanadium principals.
 //
 // Each instance of wspr is expected to have a single (human) user at a time
 // that will be signed in and using various apps. A user may have different
diff --git a/services/wsprd/wspr/pipe.go b/services/wsprd/wspr/pipe.go
index fb99139..72db35d 100644
--- a/services/wsprd/wspr/pipe.go
+++ b/services/wsprd/wspr/pipe.go
@@ -23,7 +23,7 @@
 }
 
 type pipe struct {
-	// The struct that handles the translation of javascript request to veyron requests.
+	// The struct that handles the translation of javascript request to vanadium requests.
 	controller *app.Controller
 
 	ws *websocket.Conn
diff --git a/services/wsprd/wspr/wspr.go b/services/wsprd/wspr/wspr.go
index 8e60946..a0b76b2 100644
--- a/services/wsprd/wspr/wspr.go
+++ b/services/wsprd/wspr/wspr.go
@@ -1,4 +1,4 @@
-// A simple WebSocket proxy (WSPR) that takes in a Veyron RPC message, encoded in JSON
+// A simple WebSocket proxy (WSPR) that takes in a Vanadium RPC message, encoded in JSON
 // and stored in a WebSocket message, and sends it to the specified Veyron
 // endpoint.
 //
@@ -122,7 +122,7 @@
 // Creates a new WebSocket Proxy object.
 func NewWSPR(ctx *context.T, httpPort int, listenSpec *ipc.ListenSpec, identdEP string, namespaceRoots []string) *WSPR {
 	if listenSpec.Proxy == "" {
-		vlog.Fatalf("a veyron proxy must be set")
+		vlog.Fatalf("a vanadium proxy must be set")
 	}
 
 	wspr := &WSPR{
diff --git a/test/modules/core/test_identityd.go b/test/modules/core/test_identityd.go
index 61840bb..6aa3cd1 100644
--- a/test/modules/core/test_identityd.go
+++ b/test/modules/core/test_identityd.go
@@ -21,7 +21,7 @@
 )
 
 var (
-	host      = flag.CommandLine.String("host", "localhost", "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Veyron identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
+	host      = flag.CommandLine.String("host", "localhost", "Hostname the HTTP server listens on. This can be the name of the host running the webserver, but if running behind a NAT or load balancer, this should be the host name that clients will connect to. For example, if set to 'x.com', Vanadium identities will have the IssuerName set to 'x.com' and clients can expect to find the root name and public key of the signer at 'x.com/blessing-root'.")
 	httpaddr  = flag.CommandLine.String("httpaddr", "localhost:0", "Address on which the HTTP server listens on.")
 	tlsconfig = flag.CommandLine.String("tlsconfig", "", "Comma-separated list of TLS certificate and private key files. This must be provided.")
 )
