diff --git a/goblin/app.py b/goblin/app.py
index c7b698c119840bf16d0f401d70685506582d17a6..dbdf761e82e6d0d7b7222a92226e6ac5fbe36b8f 100644
--- a/goblin/app.py
+++ b/goblin/app.py
@@ -145,7 +145,9 @@ class Goblin:
 
         :returns: :py:class:`Session<goblin.session.Session>` object
         """
+        aliases = self._config.get('aliases', None)
         conn = await driver.GremlinServer.open(self.url, self._loop)
         return session.Session(self,
                                conn,
-                               use_session=use_session)
+                               use_session=use_session,
+                               aliases=aliases)
diff --git a/goblin/session.py b/goblin/session.py
index 8dcf0faa4f7f68cc3060012c04f9620c606bb9a0..f48fec94b87949c6a5c1888575a90230f8e57f7e 100644
--- a/goblin/session.py
+++ b/goblin/session.py
@@ -41,11 +41,12 @@ class Session(connection.AbstractConnection):
     :param bool use_session: Support for Gremlin Server session. Not implemented
     """
 
-    def __init__(self, app, conn, *, use_session=False):
+    def __init__(self, app, conn, *, use_session=False, aliases=None):
         self._app = app
         self._conn = conn
         self._loop = self._app._loop
         self._use_session = False
+        self._aliases = aliases or dict()
         self._pending = collections.deque()
         self._current = weakref.WeakValueDictionary()
         remote_graph = graph.AsyncRemoteGraph(
@@ -126,7 +127,7 @@ class Session(connection.AbstractConnection):
         """
         await self.flush()
         async_iter = await self.conn.submit(
-            gremlin, bindings=bindings, lang=lang)
+            gremlin, bindings=bindings, lang=lang, aliases=self._aliases)
         response_queue = asyncio.Queue(loop=self._loop)
         self._loop.create_task(
             self._receive(async_iter, response_queue))
@@ -313,7 +314,8 @@ class Session(connection.AbstractConnection):
     # *metodos especiales privados for creation API
     async def _simple_traversal(self, traversal, element):
         stream = await self.conn.submit(
-            repr(traversal), bindings=traversal.bindings)
+            repr(traversal), bindings=traversal.bindings,
+            aliases=self._aliases)
         msg = await stream.fetch_data()
         if msg:
             msg = element.__mapping__.mapper_func(msg, element)
@@ -361,13 +363,13 @@ class Session(connection.AbstractConnection):
     async def _check_vertex(self, vertex):
         """Used to check for existence, does not update session vertex"""
         traversal = self.g.V(vertex.id)
-        stream = await self.conn.submit(repr(traversal))
+        stream = await self.conn.submit(repr(traversal), aliases=self._aliases)
         return await stream.fetch_data()
 
     async def _check_edge(self, edge):
         """Used to check for existence, does not update session edge"""
         traversal = self.g.E(edge.id)
-        stream = await self.conn.submit(repr(traversal))
+        stream = await self.conn.submit(repr(traversal), aliases=self._aliases)
         return await stream.fetch_data()
 
     async def _update_vertex_properties(self, vertex, traversal, props):
@@ -401,7 +403,8 @@ class Session(connection.AbstractConnection):
                     traversal = self.g.V(result.id).properties(
                         db_name).hasValue(value).property(key, val)
                     stream = await self.conn.submit(
-                        repr(traversal), bindings=traversal.bindings)
+                        repr(traversal), bindings=traversal.bindings,
+                        aliases=self._aliases)
                     await stream.fetch_data()
                 else:
                     potential_removals.append((db_name, key, value))