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

Showing version bafyreialcdmz6nmq6jj2phxvxznv7ufbxij6uqzwsw37jxds2luuwtj3im. Show the latest

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

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>.