Create dynamic block instances
Create a file ex : YourBlock.php in   Drupal\mymodule\Plugin\Derivative\YourBlock.php  

&lt;?php

namespace Drupal\mymodule\Plugin\Derivative;

use Drupal\Component\Plugin\Derivative\DeriverBase;

class YourBlock extends DeriverBase
{
    public function getDerivativeDefinitions($base_plugin_definition)
    {
        $results = \Drupal::database()-&gt;select('mymodule_blocks_data', 'n')
                  -&gt;fields('n', array('delta','title', 'content_type'))
                  -&gt;condition('n.form_type', 'Add', '=')
                  -&gt;execute();
        foreach ($results as $result) {
            $this-&gt;derivatives[$result-&gt;delta] = $base_plugin_definition;
            $this-&gt;derivatives[$result-&gt;delta]['admin_label'] = t('Title: @name content type: @ctype ', array('@name' =&gt; $result-&gt;title, '@ctype' =&gt; $result-&gt;content_type));
        }

        return $this-&gt;derivatives;
    }
}



  Also add the necessary annotation to display all the dynamic block instances in 

Drupal\mymodule\Plugin\Block\YourBlock.php



&lt;?php

namespace Drupal\mymodule\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Display all instances for 'YourBlock' block plugin.
 *
 * @Block(
 *   id = "mymodule_block",
 *   admin_label = @Translation("Your block"),
 *   deriver = "Drupal\mymodule\Plugin\Derivative\YourBlock"
 * )
 */


Rebuild the cache as well