Wojciech Kasjanowicz68 downloads2 Euro coin collection with filtered ownership totals, enforced title normalization, owned-card highlighting and complete English documentation.
A mobile-friendly Obsidian plugin for maintaining a structured catalogue of 2 euro coins. The plugin stores every coin as a Markdown note with YAML frontmatter, keeps covers in the vault, can synchronize official issues from Numista, and provides a searchable dashboard with ownership tracking.
Current plugin version: 0.6.2
Minimum Obsidian version: 1.8.0
Desktop-only: No. The plugin also works in Obsidian Mobile.

Close Obsidian or disable the previous version of the plugin.
In the target vault, create this folder:
.obsidian/plugins/two-euro-collection/
Copy the following files into that folder:
main.js
manifest.json
styles.css
Languages/pl.json
Start Obsidian.
Open Settings → Community plugins.
Turn off Restricted mode if required.
Enable 2 Euro Collection.
The final plugin directory should look like this:
.obsidian/plugins/two-euro-collection/
├── main.js
├── manifest.json
├── styles.css
└── Languages/
└── pl.json
When replacing an existing version, reload Obsidian after copying the files. On mobile, make sure the complete
.obsidian/plugins/two-euro-collectionfolder is synchronized to the device.
After installing the plugin, open Settings → 2 Euro Collection. Before starting, review the collection location settings:
The Initial configuration section contains two setup steps.
Select Create structure. The plugin creates the folders required by 2 Euro Collection and the main collection dashboard. Run this step first when configuring a new vault.
Example structure:
2 Euro/
├── 🪙 Kolekcja 2 Euro.md
├── Coins/
└── Covers/
The 🪙 Kolekcja 2 Euro.md note contains the code block used by the plugin to render the collection dashboard::
````markdown
```two-euro-collection
Do not remove that code block if the dashboard is to remain visible.
#### Step 2: Install starter collection
This step is optional.
Select **Install starter collection** to add a prepared set of example coins together with their local cover images.
The starter collection is designed to make the initial setup easier. It does not represent the author's collection, and all imported coins initially remain marked as not owned.
During installation:
-only missing coins are created;
- existing coins are not replaced;
- existing user data is not modified;
- prepared cover images are stored locally;
- starter collection covers are protected from automatic replacement.
Running the starter collection installation again should not create duplicates of existing coins.
After completing the initial configuration, open the collection using the ribbon icon or the **2 Euro Collection: Open collection** command.
#### Adding more coins
After the initial configuration, the catalogue can be expanded in two ways:
**Synchronize with Numista**
- Configure your Numista API key.
- Open the collection dashboard.
- Open the **2 Euro Collection** sidebar if it is not already visible.
- Select **Synchronize**.
- Wait for the synchronization to finish.
- If required, select **Download covers** to download missing local images.
Synchronization creates or updates notes for official 2 euro issues while preserving local ownership data and protected or custom covers.
**Add coins manually**
- Select + Add in the sidebar or run 2 Euro Collection: Add coin.
- Enter at least Country, Year, and Title / design.
- Select National or Commemorative.
- Add a mint mark when the issue has a mint variant.
- Select Save.
Manual entries use `source: manual` and are not removed by the command that cleans unofficial Numista imports.
## Numista API configuration
Numista provides API access to its numismatic catalogue. Sign in to Numista, activate API access, and generate an API key from the Numista API page. See the [official Numista API page](https://en.numista.com/api/index.php) and [API documentation](https://en.numista.com/api/doc/index.php).
To configure the plugin:
1. Open **Obsidian Settings → 2 Euro Collection**.
2. Paste the key into **Numista API key**.
3. Leave the settings page. Obsidian saves the plugin settings automatically.
4. Run **Synchronize**.
> The API key is stored in the plugin's Obsidian settings data. Do not publish or commit the generated `data.json` with a real API key.
### What synchronization reads from Numista
For supported official issues, the plugin can read and store:
- issuer/country;
- year and mint letter;
- title/design;
- standard or commemorative type;
- Numista type and issue identifiers;
- Numista URL;
- mintage;
- obverse image URL;
- photo author/copyright and photo license metadata when supplied;
- numismatic values by grade in EUR when supplied by the API.
The synchronizer filters the results to official 2 euro issuers and standard-circulation or circulating commemorative object types. Entries identified as medals, tokens, patterns, trials, fantasy issues, souvenirs, replicas, or copies are excluded. The command **Remove unofficial Numista imports** can clean older imported entries while preserving owned coins, locked covers, custom covers, and manual entries.
## Reading local coin data
Each catalogue entry is a normal Markdown file in the `Coins` folder. The plugin reads the YAML frontmatter and renders it as a dashboard card.
Example:
```yaml
---
coin_id: coin-12345-67890
denomination: 2
currency: EUR
country: Finland
year: '1999'
coin_type: national
title: 2 Euro (1st type, 1st map)
mint_mark: M
owned: true
quantity: 1
acquisition_date: 2026-01-15
acquisition_price: 4.50
acquisition_currency: EUR
condition: UNC
source: numista
numista_id: '12345'
numista_issue_id: '67890'
cover: '[[11 - Collections/2 Euro/Covers/Finland-1999-National-M.png]]'
reference_year: '1999'
cover_locked: true
own_cover: false
---
You may inspect or edit these notes directly, but using the plugin editor is safer because it normalizes fields and refreshes the dashboard.
Covers are stored in the configured Covers folder and linked from coin frontmatter.
Use Download covers in the sidebar or run 2 Euro Collection: Download missing covers. The operation:
Click the coin image to open Coin cover and data.

Available cover actions:
cover_locked: true) prevents synchronization and bulk downloading from replacing the image.own_cover: true) also activates cover protection.The dot in the upper-right corner of a coin image describes the cover state:
These dots indicate image/reference status. They do not indicate whether the coin is owned.
Open the right sidebar with 2 Euro Collection: Open collection panel. The dashboard can be filtered by:
Available sorting modes:
The counter above the grid is calculated from the currently filtered list, for example Owned: 6 / 48 after applying filters.

Click the text area below a coin image to open the standard editor. Click the image to open the combined cover-and-data editor.
Editable fields include:
The numismatic value field is read-only because it is populated from Numista.
When editing Cover reference year, the plugin proposes years only from coins that satisfy all of these conditions:
This prevents unrelated covers from being offered as references.
Selected coins can also be duplicated or deleted. Deletion requires confirmation and cannot be undone through the batch action.
A coin is owned when I own this coin is enabled, which stores owned: true in frontmatter.
✓ Owned.○ Missing.The ownership color is applied to the card background. The green, orange, red, and blue dots on the image describe cover/reference status instead.
The plugin is not desktop-only. Install or synchronize the complete plugin folder to the mobile vault, enable the plugin in Community plugins, and open the collection note.
On a phone:



In the right sidebar or plugin settings you can choose:
The Coins per row slider supports values from 4 to 10 on desktop. Mobile uses a responsive three-column layout.
Open the Command Palette and search for 2 Euro Collection. Important commands include:
Before a large synchronization, cleanup, title normalization, cover migration, or batch deletion:
.obsidian/plugins/two-euro-collection.manifest.json, main.js, and styles.css are directly inside that folder..obsidian/community-plugins.json and confirm that two-euro-collection is listed after the plugin is enabled.Confirm that the file exists at:
.obsidian/plugins/two-euro-collection/Languages/pl.json
The folder name uses a capital L.
Open Settings → 2 Euro Collection, enter a valid Numista API key, and run synchronization again.
Covers folder.cover_locked, own_cover, and reference_year in the affected note.The plugin spaces API calls and retries rate-limited requests with increasing delays. Leave Obsidian open until the progress notice completes. Avoid starting multiple synchronization or cover-download operations at the same time.
Coin notes and downloaded covers are stored in the user's Obsidian vault. Numista catalogue data and images remain subject to Numista's terms and the license/attribution information supplied with each image. Keep the photo_author, photo_license, and related source information when redistributing images or generated catalogue content.
The screenshots in Assets/ are documentation examples. Desktop screenshots were cropped to show the plugin workspace without the author's personal Obsidian navigation menu.
No software license is declared in the current plugin package. Add a LICENSE file before public distribution if the plugin is intended for reuse by others.