> For the complete documentation index, see [llms.txt](https://commun-platform.gitbook.io/commun-platform-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://commun-platform.gitbook.io/commun-platform-docs/platform-architecture/how-to-mint-a-pov.md).

# How to mint a PoV

<figure><img src="https://3166323360-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu5y89IdHTbbfqeGDEz5I%2Fuploads%2FeNVQchlatfNqK0yU0Q7w%2Fimage.png?alt=media&amp;token=231ff855-1d19-4cb9-84a1-ac020f892039" alt=""><figcaption></figcaption></figure>

Visitors can mint proof of visit at any time at their discretion in exchange for a spot signature received from the spot device. Basically, visitors need to mint it themselves, but proxy minting and disposable wallet is also possible to improve UI/UX. See [About VisitorRegistry](/commun-platform-docs/platform-architecture/about-visitorregistry.md) for more details.

## mint by visitors themselves

## Flow

1. The visitor calls `VisitedBy::mint()` with a spot signature. `VisitedBy` treats `msg.sender` as the recipient of the `PoV`.
2. `SpotVerifier::verify()` called by `VisitedBy::mint()` returns the EOA recovered from the signature.
3. The visitor's EOA is resolved in the `VisitorRegistry`.
4. If the visitor is not registered in the `VisitorRegistry`, the address as it is is used.
5. If the EOA just resolved by `SpotVerifier` was registered in `SpotResistry`, then `SpotResolver's` address is returned by `SpotResistry`. If it is not registered, 0x0 is returned.
6. Then, `SpotResolver::mint()` is called.
7. Finally, `SpotResolver` calls `PoV::mint()` according to `PoV ID`, and you can receive `PoV`.

## Proxy mint

Soon...
