diff --git a/design/mvp/WIT.md b/design/mvp/WIT.md
index eec4b325..0f214973 100644
--- a/design/mvp/WIT.md
+++ b/design/mvp/WIT.md
@@ -116,7 +116,7 @@ would correspond to:
 )
 ```
 
-An `interface` can contain [`use`][use] statements, [type][types] definitions,
+An `interface` can contain [`use`][use] and [`nest`][nest] statements, [type][types] definitions,
 and [function][functions] definitions. For example:
 
 ```wit
@@ -136,7 +136,7 @@ interface types {
 }
 ```
 
-More information about [`use`][use] and [types] are described below, but this
+More information about [`use`][use], [`nest`][nest], and [types] are described below, but this
 is an example of a collection of items within an `interface`. All items defined
 in an `interface`, including [`use`][use] items, are considered as exports from
 the interface. This means that types can further be used from the interface by
@@ -660,6 +660,73 @@ world w2 {
 > configure that a `use`'d interface is a particular import or a particular
 > export.
 
+## Nesting WIT interfaces
+[nest]: #nesting-wit-interfaces
+Interfaces can also contain other interfaces via the `nest` keyword.
+With the `nest` keyword, one can reference other interfaces in the same package, foreign packages, or define anonymous interfaces inline.
+
+```wit
+package local:example;
+
+interface foo {
+  ...
+}
+
+interface top {
+  nest foo;
+  nest foreign:pkg/bar;
+  baz: interface {
+    ...
+  }
+}
+```
+
+Each of these forms of nesting interfaces are encoded as:
+
+```wasm
+(component
+  (type (;0;) 
+    (component 
+      (type (;0;)
+        (instance
+          ... `types from foo`
+        )
+      )
+      (export "local:example/foo" (type 0))
+    )
+  )
+  (export (;1;) "foo" (type 0))
+  (type (;2;)
+    (component
+      (type (;0;) 
+        (instance
+          (type (;0;)
+            (instance
+              ... `types from foo`
+            )
+          )
+          (export "local:example/foo" (instance (type 0)))
+          (type (;1;) 
+            (instance 
+              ... `types from foreign:pkg/bar`
+            )
+          )
+          (export "foreign:pkg/bar" (instance (type 1)))
+          (type (;2;) 
+            (instance 
+              ... `types from baz`
+            )
+          )
+          (export "baz" (instance (type 2)))
+        )
+      )
+      (export "local:example/top (type 1))
+    )
+  )
+  (export (;3;) "top" (type 2))
+)
+```
+
 ## WIT Functions
 [functions]: #wit-functions
 
@@ -1106,6 +1173,7 @@ interface-items ::= gate interface-definition
 interface-definition ::= typedef-item
                        | use-item
                        | func-item
+                       | nest-item
 
 typedef-item ::= resource-item
                | variant-items
@@ -1128,6 +1196,9 @@ named-type-list ::= ϵ
                   | named-type ( ',' named-type )*
 
 named-type ::= id ':' ty
+
+nest-item ::= gate nest use-path ';'
+            | id: interface-item
 ```