How do I support text formats for an entity property?
You'll need another property on your entity to hold the format.

In your entity form builder, use a text_format element, and use a validate to move the desired values into place:

$form['description_placeholder'] = array(
  '#type' =&gt; 'text_format',
  '#title' =&gt; t('Description'),
  '#format' =&gt; empty($entity-&gt;description_format) ? 'full_html' : $entity-&gt;description_format,
  '#default_value' =&gt; empty($entity-&gt;description) ? '' : $entity-&gt;description,
);

$form['#validate'][] = 'MYMODULE_entity_validate';

...

function MYMODULE_entity_validate($form, &amp;$form_state) {
  $form_state['values']['description'] = $form_state['values']['description_placeholder']['value'];
  $form_state['values']['description_format'] = $form_state['values']['description_placeholder']['format'];
}


When you render, use:

 $formatted = check_markup($entity-&gt;description, $entity-&gt;description_format);