cards.sunshine.verify

Checks a tap of a Sunshine Card. Called through the scanner's PDS (service auth), it also returns a signed scan record for the caller to write into the scanner's repo.

Repository @sunshine.cards did:web:sunshine.cards namespace authority
Details · procedure
Kindprocedure
Authoritysunshine.cards
Indexed

Procedure

procedure · POST

Input

application/json

ctr

string

The read counter, in hex, from a plain-mirror tag.

  • minLength: 6
  • maxLength: 6

did

requiredstring · did

The card's creator.

mac

requiredstring

The tap's signature, in hex.

  • minLength: 16
  • maxLength: 16

picc

string

The encrypted serial number and counter, in hex, from an encrypted-mirror tag. Supply exactly one of ctr and picc.

  • minLength: 32
  • maxLength: 32

uid

requiredstring

The tag's serial number, in hex.

  • minLength: 14
  • maxLength: 14

Output

application/json

card

unknown

The card's public details: a complete cards.sunshine.card record. Present when valid is true, and when reason is alreadyCollected. The card's record is only published once someone collects it, so this is the only place to find a new card's details.

Write it whenever it's present, even when valid is false. When valid, it's the scan just made; when reason is alreadyCollected, it's the scanner's earlier scan of this card, signed again.

Reference

reason

string
  • maxLength: 64
  • knownValues: notGenuine | replayed | alreadyCollected | unknownCard

valid

requiredboolean

Errors

CreatorUnavailable

The creator's deck can't be reached. Retry the same tap; if that returns replayed, tap again.

#proof

object

A signed scan record, with the arguments com.atproto.repo.createRecord needs to write it.

Properties

collection

requiredstring · nsid

did

requiredstring · did

The scanner: the repo to write to.

record

requiredunknown

The signed cards.sunshine.scan record.

rkey

requiredstring · record-key

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • cards.sunshine.scan

    record not from the namespace authority

    Proof that this repo's owner scanned a Sunshine Card, signed by the instance that checked the tap. The record key is <creator DID>:<UID>:<counter>.