diff --git a/composer.json b/composer.json
index 303bf8411..48838e8f1 100644
--- a/composer.json
+++ b/composer.json
@@ -46,6 +46,7 @@
"chillerlan/php-settings-container": "^2.1.4 || ^3.0"
},
"require-dev": {
+ "chillerlan/php-authenticator": "^4.0 || ^5.0",
"phan/phan": "^5.4",
"phpunit/phpunit": "^9.6",
"phpmd/phpmd": "^2.13",
diff --git a/examples/Readme.md b/examples/Readme.md
index 7b1370adc..c5e027cd3 100644
--- a/examples/Readme.md
+++ b/examples/Readme.md
@@ -27,5 +27,6 @@
## Other examples
+- [Authenticator](./authenticator.php): create a QR Code that displays an URI for a mobile authenticator (featuring [`chillerlan/php-authenticator`](https://github.com/chillerlan/php-authenticator))
- [Interactive output](./qrcode-interactive.php): interactive demo (via [index.html](./index.html))
- [Custom module shapes](./shapes.svg): SVG paths to customize the module shapes ([#150](https://github.com/chillerlan/php-qrcode/discussions/150))
diff --git a/examples/authenticator.php b/examples/authenticator.php
new file mode 100644
index 000000000..e9ee7ed50
--- /dev/null
+++ b/examples/authenticator.php
@@ -0,0 +1,125 @@
+
+ * @copyright 2023 smiley
+ * @license MIT
+ */
+
+use chillerlan\Authenticator\{Authenticator, AuthenticatorOptionsTrait};
+use chillerlan\Authenticator\Authenticators\AuthenticatorInterface;
+use chillerlan\Settings\SettingsContainerAbstract;
+use chillerlan\QRCode\{QRCode, QROptionsTrait};
+use chillerlan\QRCode\Data\QRMatrix;
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+// the options array
+$optionsArray = [
+ /*
+ * AuthenticatorOptionsTrait
+ *
+ * @see https://github.com/chillerlan/php-authenticator
+ */
+ 'mode' => AuthenticatorInterface::TOTP,
+ 'digits' => 8,
+ 'algorithm' => AuthenticatorInterface::ALGO_SHA512,
+
+ /*
+ * QROptionsTrait
+ */
+ 'version' => 7,
+ 'addQuietzone' => false,
+ 'imageBase64' => false,
+ 'svgAddXmlHeader' => false,
+ 'cssClass' => 'my-qrcode',
+ 'drawLightModules' => false,
+ 'markupDark' => '',
+ 'markupLight' => '',
+ 'drawCircularModules' => true,
+ 'circleRadius' => 0.4,
+ 'connectPaths' => true,
+ 'keepAsSquare' => [
+ QRMatrix::M_FINDER_DARK,
+ QRMatrix::M_FINDER_DOT,
+ QRMatrix::M_ALIGNMENT_DARK,
+ ],
+ 'svgDefs' => '
+