I had a similar question these days, and I tried to see if the Features module could help. Features worked to me. You can create the field by the UI and then export a feature with the address field already created. After that you can move the inc files for your custom module and add an include on your .module file: include_once('[your_module].features.inc'); Then, you will need to add the some lines on your .info from the info file of the exported feature. Your info file will need something like this: dependencies[] = "features" dependencies[] = "text" features[field][] = "node-article-field_address" This question may help you too: http://drupal.stackexchange.com/q/13083.