# Creating a Currency

The Money2 package includes a list of most of the [Common Currencies](https://money2.onepub.dev/common-currencies) with the appropriate default format and scale.

In some cases you may need to create your own currency.

Creating a Currency is simple:

```dart
import 'package:money2/money2.dart';
import 'package:test/test.dart';

void main() {
 test('Create Currency - example 1', () {
    // US dollars which have 2 digits after the decimal place
    // using the default patttern: 'S0.00'
    final usd = Currency.create('USD', 2);
    expect(usd.isoCode, equals('USD'));

    // Create currency using a custom pattern
    final usd2 = Currency.create('USD', 2, pattern: 'SCCC 0.00');

    /// we can now use the currency to create a Money instance.
    final amount = Money.parseWithCurrency(r'$1.25', usd2);

    expect(amount.toString(), equals(r'$USD 1.25'));

    // configure everything
    final euro = Currency.create('EUR', 2,
        symbol: '€',
        decimalSeparator: ',',
        groupSeparator: '.',
        pattern: '0,00S',
        country: 'European Union',
        unit: 'Euro',
        name: 'European Union Euro');
    expect(euro.country, equals('European Union'));
  });
}
```

The Currency also allows you to optionally provide a country, unit and name.  The common currencies have currency-specific values for each of these.

You would normally create a single instance of a Currency and re-use that throughout your code base. The easiest way to do this is to [register](https://money2.onepub.dev/registering-a-currency) your currency.
