Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ All TIPs should follow the standard template located at `TIP-template.md`. The t
|--------|-------|--------|---------|
| [TIP-0001](tips/TIP-0001.md) | TIP Process and Guidelines | Draft | 2025-11-04 |
| [TIP-0002](tips/TIP-0002.md) | Example Blockchain Improvement | Draft | 2025-11-04 |
| [TIP-0003](tips/TIP-0003.md) | Tari Hidden Address Protocol | Draft | 2025-11-06 |

## Contributing

Expand Down
71 changes: 71 additions & 0 deletions tips/TIP-0003.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# TIP-0003: Tari Hidden Address Protocol (THAP)

```
TIP Number: 0003
Title: Tari Hidden Address Protocol
Status: Draft
Author(s): stringhanler,metalaureate
Created: 2025-11-06
```

## Abstract

This TIP describes the Tari Hidden Address Protocol (THAP), a pattern for using Tari's privacy features to prove discovery or attendance without revealing user identities. By keeping a Tari address secret and distributing it selectively (e.g., at physical locations, events, or as part of challenges), applications can verify that users have found the address by observing transactions sent to it. The address owner can use their private view key to scan the blockchain and identify all participants who sent transactions, while participants maintain privacy since their identities are not publicly linked to the address. This enables use cases such as proof of attendance protocols (POAP), private ticketing, geocaching, exploration games, and supply chain provenance without requiring protocol changes to Tari.


## Motivation

Applications can use the THAP to prove that a user has found a secret address, and indirectly prove the means that they found it. The proof itself is done by sending a transaction to
the address. Any user with the private view key can recover outputs sent to this address and reveal them, possibly through a web
site.

For example, a user could create a Tari wallet, hide the address in a geocache and then scan the blockchain using a viewkey and host a website
of users who have found the geocache.

The assumption here is that the Tari Address never gets leaked.

Other use cases include:

| Use case | Possible implementation |
| --- | --- |
| Proof of Attendance Protocol (POAP) | Users scan a hidden Tari address (QR/NFC) at an event, gallery, or location to privately record attendance without exposing their identity or wallet publicly. |
| Private Ticketing | A user generates one address per ticket. Sending a transaction to the address claims the ticket |
| Supply Chain Provenance | Each shipment or product stage has its own Tari wallet; participants send encrypted notes as private checkpoints, viewable only by authorized auditors via view keys |
| Proof of Discovery / Exploration Games | eal-world QR or NFC tags correspond to secret Tari addresses; scanning them proves physical presence (geocache, ARGs, scavenger hunts, etc.). |
| Educational or Training Badges | Course completions or certifications are logged as private notes to an institutional view key; students retain privacy while institutions can verify attendance or progress. |

## Specification

No changes are required to implement this on Tari, but users who wish to implement a use case above would need to:
1. Create a private view key and spend key (usually from creating a new wallet with a seed phrase)
2. Create a Tari address (A) from the view key and a spend key.
3. Keep all of the above secret.
4. Depending on the use case, publish A to the selective audience.

### Technical Details

Not applicable

## Rationale

This enables the above use cases.

## Backwards Compatibility

Not applicable

## Test Cases

Not applicable

## Implementation

Not applicable

## References

- [Tari Geocache Example](https://github.com/stringhandler/tari-geocache2)

## Copyright

This document is released under the BSD 3-Clause License.