diff --git a/core/modules/block/config/tour.tour.block.yml b/core/modules/block/config/tour.tour.block.yml
new file mode 100644
index 0000000..60bca94
--- /dev/null
+++ b/core/modules/block/config/tour.tour.block.yml
@@ -0,0 +1,53 @@
+id: block
+module: custom_block
+label: Block
+status: '1'
+langcode: en
+routes:
+  - route_name: block.admin_display
+  - route_name: block.admin_display_theme
+tips:
+  structuring-with-blocks:
+    id: structuring-with-blocks
+    plugin: text
+    label: 'Structuring with blocks'
+    weight: '-100'
+    attributes: ''
+    body: 'Here you can move around the blocks between regions.'
+    location: top
+  choose-the-theme:
+    id: choose-the-theme
+    plugin: text
+    label: 'Choose the theme'
+    weight: '-99'
+    attributes:
+      data-class: tabs.secondary
+    body: 'Block placement is specific to a theme. Choose the theme in which to edit the block configuration.'
+    location: left
+  demonstration:
+    id: demonstration
+    plugin: text
+    label: Demonstration
+    weight: '-98'
+    attributes:
+      data-id: block-help
+    body: '''Demonstrate block regions'' will show highlighted block regions and the current blocks positioned in those regions. It is useful to see where a new block can be added.'
+    location: bottom
+  position-new-blocks:
+    id: position-new-blocks
+    plugin: text
+    label: 'Placing a custom blocks'
+    weight: '-97'
+    attributes:
+      data-class: action-links
+    body: 'This shows a page where any type of block can be placed and configured.'
+    location: bottom
+  change-a-block-s-position:
+    id: change-a-block-s-position
+    plugin: text
+    label: 'Change a block''s position'
+    weight: '-96'
+    attributes:
+      data-class: block-region-select
+    body: 'A block can be moved to a different region by choosing the region here.'
+    location: bottom
diff --git a/core/modules/block/custom_block/config/tour.tour.custom-block-edit.yml b/core/modules/block/custom_block/config/tour.tour.custom-block-edit.yml
new file mode 100644
index 0000000..6725af6
--- /dev/null
+++ b/core/modules/block/custom_block/config/tour.tour.custom-block-edit.yml
@@ -0,0 +1,26 @@
+id: custom-block-edit
+module: custom_block
+label: 'Custom block edit'
+status: '1'
+langcode: en
+routes:
+  - route_name: custom_block.edit
+tips:
+  revisions:
+    id: revisions
+    plugin: text
+    label: Revisions
+    weight: '-10'
+    attributes:
+      data-class: form-item-revision
+    body: 'Creating new revisions saves each change to a block''s content. It is possible to then roll back to earlier revisions.'
+    location: top
+  editing-the-block:
+    id: editing-the-block
+    plugin: text
+    label: 'Editing the block'
+    weight: '-9'
+    attributes:
+      data-class: primary
+    body: 'Select the tabs to edit the custom block fields, how they are displayed or to delete the custom block. '
+    location: left
diff --git a/core/modules/block/custom_block/config/tour.tour.custom-blocks-list.yml b/core/modules/block/custom_block/config/tour.tour.custom-blocks-list.yml
new file mode 100644
index 0000000..cc791fe
--- /dev/null
+++ b/core/modules/block/custom_block/config/tour.tour.custom-blocks-list.yml
@@ -0,0 +1,43 @@
+id: custom-blocks-list
+module: custom_block
+label: 'Custom blocks list'
+status: '1'
+langcode: en
+routes:
+  - route_name: custom_block.list
+tips:
+  title:
+    id: title
+    plugin: text
+    label: 'Custom blocks'
+    weight: '-100'
+    attributes: ''
+    body: 'Custom block are used to create content that can be displayed in block regions such as sidebars.'
+    location: top
+  blocks-and-types:
+    id: blocks-and-types
+    plugin: text
+    label: 'Blocks and types'
+    weight: '-99'
+    attributes:
+      data-class: tabs.secondary
+    body: 'Here you can create special types.'
+    location: left
+  available-custom-blocks:
+    id: available-custom-blocks
+    plugin: text
+    label: 'Available custom blocks'
+    weight: '-98'
+    attributes:
+      data-class: region.region-content
+    body: 'Below are the current available custom blocks.'
+    location: top
+  edit-button:
+    id: edit-button
+    plugin: text
+    label: 'Edit button'
+    weight: '-97'
+    attributes:
+      data-class: dropbutton-widget
+    body: 'Edit the block content and how it is displayed via the dropdown links.'
+    location: bottom
diff --git a/core/modules/block/lib/Drupal/block/Tests/TourBlockTest.php b/core/modules/block/lib/Drupal/block/Tests/TourBlockTest.php
new file mode 100644
index 0000000..84b7af9
--- /dev/null
+++ b/core/modules/block/lib/Drupal/block/Tests/TourBlockTest.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\block\Tests\TourCustomBlockTest.
+ */
+
+namespace Drupal\block\Tests;
+
+use Drupal\tour\Tests\TourTestBasic;
+
+/**
+ * Tests tour functionality.
+ */
+class TourBlockTest extends TourTestBasic {
+
+  protected $tips = array(
+    '/admin/structure/block' => array(),
+    //'/admin/structure/block/seven' => array(),
+  );
+
+  public static $modules = array('help', 'tour', 'block', 'custom_block');
+
+  function __construct($test_id = NULL) {
+    parent::__construct($test_id);
+
+    $this->permissions[] = 'administer blocks';
+    $this->permissions[] = 'view the administration theme';
+    $this->permissions[] = 'access administration pages';
+  }
+  function setUp() {
+    parent::setUp();
+    // Enable some test blocks.
+    $this->testBlocks = array(
+      array(
+        'plugin_id' => 'system_help_block',
+        'settings' => array('region' => 'help', 'machine_name' => 'help'),
+        'weight' => '0',
+      ),
+    );
+    foreach ($this->testBlocks as $values) {
+      $this->drupalPlaceBlock($values['plugin_id'], $values['settings']);
+    }
+  }
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Block tour tests',
+      'description' => 'Tests the Administer Block tour.',
+      'group' => 'Tour',
+    );
+  }
+
+}
