Basefield 'string' shown as select list widget in entity form
Create a list_string base field and use as widget OptionsSelectWidget.

$fields['entity_definition'] = BaseFieldDefinition::create('list_string')
  -&gt;setLabel(t('Entity Definition'))
  -&gt;setSettings([
    'allowed_values' =&gt; [
      'value1' =&gt; 'Value 1',
      'value2' =&gt; 'Value 2',
    ],
  ])
  -&gt;setDisplayOptions('form', [
    'type' =&gt; 'options_select',
  ])


To update the options dynamically add a callback to the base field settings allowed_values_function, see How do I programmatically update the allowed values of a list field?