Playbook

Institution Playbook

How institutions steward cultural memory, archives, and collections with SOVEREIGN\PROVENANCE.

Institutions Playbook

How libraries, museums, and universities use SOVEREIGN\PROVENANCE for stewardship

Who This Is For

This playbook is for libraries, museums, archives, universities, and cultural institutions that steward digital collections and need to maintain provenance records, protect cultural heritage, and ensure long-term accessibility.

What You Can Do

With SOVEREIGN\PROVENANCE, institutions can:

  • Register institutional identity - Establish your institution's sovereign identity
  • Create collection passports - Issue passports for all items in your collection
  • Maintain provenance records - Track origin, ownership, and lineage
  • Protect cultural heritage - Ensure cultural protocols are respected
  • Ensure long-term accessibility - Maintain verifiable records for future generations

Overview

Institutions use SOVEREIGN\PROVENANCE to maintain provenance records, protect cultural heritage, and ensure long-term accessibility of digital collections.

Register a Collection and Ensure Its Digital Derivatives Are Governed by Accord

This is a concrete flow to get your institution's collection registered and protected.

Step 1: Register Institution Identity

const institutionIdentity = await client.createIdentity({
  publicKey: institutionPublicKey,
  metadata: {
    name: 'Smithsonian Institution',
    type: 'institution',
    category: 'museum',
    website: 'https://si.edu',
  },
});

Step 2: Create Collection Passports

For each item in your collection, create a passport:

// For each item in collection
for (const item of collectionItems) {
  const seal = await client.generateSeal(item.digitalFile);
  const passport = await client.createPassport({
    identityId: institutionIdentity.id,
    sealId: seal.id,
    metadata: {
      artifactType: item.type,
      title: item.title,
      createdAt: item.acquisitionDate,
      tags: ['collection', 'museum', item.category],
    },
    lineage: {
      ancestors: item.sourcePassports || [],
      derivatives: [],
      datasets: [],
    },
  });

  // Link to collection record
  await updateCollectionRecord(item.id, {
    passportId: passport.id,
  });
}

Use Cases

Digital Archive Stewardship

// Maintain provenance for archived materials
async function archiveItem(item, sourcePassports) {
  // Create passport
  const passport = await client.createPassport({
    identityId: institutionIdentity.id,
    sealId: await generateSeal(item.file),
    metadata: {
      artifactType: item.type,
      title: item.title,
      tags: ['archive', 'preservation'],
    },
    lineage: {
      ancestors: sourcePassports,
      derivatives: [],
      datasets: [],
    },
  });

  // Record in ledger
  await client.writeEvent({
    type: 'passport_created',
    identity: institutionIdentity.id,
    payload: {
      passportId: passport.id,
      collection: 'archive',
      preservationLevel: 'permanent',
    },
  });

  return passport;
}

Exhibition Provenance

// Track provenance for exhibitions
async function createExhibitionProvenance(exhibition) {
  const passports = [];
  
  for (const artwork of exhibition.artworks) {
    // Verify artwork passport
    const verification = await client.verifyPassport(artwork.passportId);
    
    if (!verification.valid) {
      console.warn(`Invalid passport for artwork: ${artwork.id}`);
      continue;
    }

    passports.push(artwork.passportId);
  }

  // Create exhibition record
  await client.writeEvent({
    type: 'exhibition_created',
    identity: institutionIdentity.id,
    payload: {
      exhibitionId: exhibition.id,
      title: exhibition.title,
      passportIds: passports,
      startDate: exhibition.startDate,
      endDate: exhibition.endDate,
    },
  });
}

Research Dataset Registration

// Register research datasets with provenance
async function registerResearchDataset(dataset) {
  // Create passport for dataset
  const datasetPassport = await client.createPassport({
    identityId: institutionIdentity.id,
    sealId: await generateSeal(dataset.file),
    metadata: {
      artifactType: 'dataset',
      title: dataset.title,
      tags: ['research', 'dataset', dataset.field],
    },
  });

  // Create accord for research use
  const researchAccord = await client.createAccord({
    attribution: 'required',
    derivatives: 'allowed',
    aiTraining: 'opt_in', // Allow for research
    commercial: 'restricted',
  });

  // Link accord
  await client.updateRights(datasetPassport.id, {
    accordId: researchAccord.id,
  });

  return datasetPassport;
}

Best Practices

  1. Comprehensive Metadata - Include detailed metadata for all items
  2. Source Tracking - Maintain links to source passports
  3. Regular Verification - Periodically verify passport integrity
  4. Public Access - Make provenance records publicly accessible
  5. Long-term Preservation - Plan for long-term passport maintenance

Resources