dev.malpercio.cards.give

cards.malpercio.dev

Documentation

Issuance of a single card instance or a sealed pack, written by the provider into its own repo. This record is the root of a card's provenance chain and its at-URI is the card's permanent identity. The rkey is a TID, so issuance order is implicit.

main record

Issuance of a single card instance or a sealed pack, written by the provider into its own repo. This record is the root of a card's provenance chain and its at-URI is the card's permanent identity. The rkey is a TID, so issuance order is implicit.

Record Key tid Timestamp-based ID

Properties

context string Optional

Why it was issued, e.g. 'Opened from pack at://...'.

maxLength: 512 bytes
givenAt string datetime Required

An RFC 3339 formatted timestamp.

issue union Required

What was issued: a single card or a sealed pack.

Known types:
recipient string did Required

The DID this give was issued to.

revokedAt string datetime Optional

Set to invalidate this give. Verifiers must treat the whole downstream chain as void.

source string at-uri Optional

The record that triggered issuance, e.g. the like on a pack post. For packs, the seed is derived from it.

View raw schema
{
  "description": "Issuance of a single card instance or a sealed pack, written by the provider into its own repo. This record is the root of a card's provenance chain and its at-URI is the card's permanent identity. The rkey is a TID, so issuance order is implicit.",
  "key": "tid",
  "record": {
    "properties": {
      "context": {
        "description": "Why it was issued, e.g. 'Opened from pack at://...'.",
        "maxLength": 512,
        "type": "string"
      },
      "givenAt": {
        "format": "datetime",
        "type": "string"
      },
      "issue": {
        "description": "What was issued: a single card or a sealed pack.",
        "refs": [
          "#cardIssue",
          "#packIssue"
        ],
        "type": "union"
      },
      "recipient": {
        "description": "The DID this give was issued to.",
        "format": "did",
        "type": "string"
      },
      "revokedAt": {
        "description": "Set to invalidate this give. Verifiers must treat the whole downstream chain as void.",
        "format": "datetime",
        "type": "string"
      },
      "set": {
        "description": "The dev.malpercio.cards.set manifest this was printed from.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "source": {
        "description": "The record that triggered issuance, e.g. the like on a pack post. For packs, the seed is derived from it.",
        "format": "at-uri",
        "type": "string"
      }
    },
    "required": [
      "set",
      "recipient",
      "givenAt",
      "issue"
    ],
    "type": "object"
  },
  "type": "record"
}
cardIssue object

A single card instance.

Properties

assetCid string cid Required

Copied from the set manifest; the canonical fingerprint owner copies must match.

cardId string Required

No description available.

maxLength: 64 bytes
iconCid string cid Optional

A content identifier (CID) referencing immutable data.

serial integer Required

1-based print number, unique per (set, cardId, variantId).

minimum: 1
variantId string Optional

No description available.

maxLength: 64 bytes
View raw schema
{
  "description": "A single card instance.",
  "properties": {
    "assetCid": {
      "description": "Copied from the set manifest; the canonical fingerprint owner copies must match.",
      "format": "cid",
      "type": "string"
    },
    "cardId": {
      "maxLength": 64,
      "type": "string"
    },
    "fromPack": {
      "description": "The pack give this card was opened from, if any.",
      "ref": "com.atproto.repo.strongRef",
      "type": "ref"
    },
    "iconCid": {
      "format": "cid",
      "type": "string"
    },
    "serial": {
      "description": "1-based print number, unique per (set, cardId, variantId).",
      "minimum": 1,
      "type": "integer"
    },
    "variantId": {
      "maxLength": 64,
      "type": "string"
    }
  },
  "required": [
    "cardId",
    "serial",
    "assetCid"
  ],
  "type": "object"
}
packIssue object

A sealed pack. Contents are drawn and reserved against supply caps at creation, committed by CID, and revealed on open.

Properties

assetCid string cid Optional

A content identifier (CID) referencing immutable data.

cardCount integer Required

Number of card gives reserved by this pack.

minimum: 1
contentsCid string cid Required

CID of the DAG-CBOR object {seed, cards:[{cardId, variantId?}]} drawn at creation. Proves the pull was fixed before opening.

openedAt string datetime Optional

An RFC 3339 formatted timestamp.

packId string Required

No description available.

maxLength: 64 bytes
seed string Optional

Revealed on open so anyone can rebuild the contents object and recompute contentsCid.

maxLength: 128 bytes
serial integer Optional

No description available.

minimum: 1
View raw schema
{
  "description": "A sealed pack. Contents are drawn and reserved against supply caps at creation, committed by CID, and revealed on open.",
  "properties": {
    "assetCid": {
      "format": "cid",
      "type": "string"
    },
    "cardCount": {
      "description": "Number of card gives reserved by this pack.",
      "minimum": 1,
      "type": "integer"
    },
    "contentsCid": {
      "description": "CID of the DAG-CBOR object {seed, cards:[{cardId, variantId?}]} drawn at creation. Proves the pull was fixed before opening.",
      "format": "cid",
      "type": "string"
    },
    "openedAt": {
      "format": "datetime",
      "type": "string"
    },
    "packId": {
      "maxLength": 64,
      "type": "string"
    },
    "produced": {
      "description": "The card gives minted when this pack was opened.",
      "items": {
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "type": "array"
    },
    "seed": {
      "description": "Revealed on open so anyone can rebuild the contents object and recompute contentsCid.",
      "maxLength": 128,
      "type": "string"
    },
    "serial": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "required": [
    "packId",
    "cardCount",
    "contentsCid"
  ],
  "type": "object"
}

Lexicon Garden

@