No description
Find a file
Namith Jawahar 2aaea668dc
Merge pull request #15 from ohader/php-80
Downgrade PHP requirement to PHP 8.0
2026-03-28 20:50:21 +05:30
docs Add packagist documentation 2026-01-08 14:43:06 -06:00
examples Mago Analyse and Format 2026-03-13 23:55:25 +05:30
src/FAIR/DID Downgrade PHP requirement to PHP 8.0 2026-03-22 14:26:53 +01:00
tests/Unit/FAIR/DID Mago Analyse and Format 2026-03-13 23:55:25 +05:30
.gitattributes Add .gitattributes for line endings and export ignores 2026-01-13 23:54:52 +05:30
.gitignore Integrate WordPress readme parser 2026-01-13 21:54:18 +05:30
composer.json Downgrade PHP requirement to PHP 8.0 2026-03-22 14:26:53 +01:00
composer.lock Prep and Files 2026-03-13 23:33:25 +05:30
LICENSE.md Switch license to GPL-3.0-or-later 2026-01-13 22:39:57 +05:30
mago.toml Prep and Files 2026-03-13 23:33:25 +05:30
phpcs.xml.dist Initial Commit 2025-12-05 14:47:46 +05:30
phpunit.xml add phpunit.xml 2025-12-10 16:47:50 -07:00
README.md Mago Analyse and Format 2026-03-13 23:55:25 +05:30

FAIR DID Manager

fairpm/did-manager is the core FAIR DID library. It contains generic DID lifecycle management, PLC operations, key generation/export, and local key storage.

Features

  • Create, resolve, update, rotate, and deactivate did:plc identifiers
  • Generate secp256k1 rotation keys and Ed25519 verification keys
  • Encode/sign PLC operations with CBOR and multibase helpers
  • Store DIDs, keys, and generic metadata locally
  • Export keys in JSON, text, and environment-variable formats

Requirements

  • PHP 8.3 or higher
  • Composer
  • Extensions: curl, json

Installation

git clone https://github.com/fairpm/did-manager.git
cd did-manager
composer install

For WordPress package metadata parsing, install fairpm/did-manager-wordpress alongside this package.

Quick Start

<?php

require_once 'vendor/autoload.php';

use FAIR\DID\DIDManager;
use FAIR\DID\PLC\PlcClient;
use FAIR\DID\Storage\KeyStore;

$store = new KeyStore(__DIR__ . '/keys.json');
$client = new PlcClient();
$manager = new DIDManager($store, $client);

$result = $manager->create_did(
	handle: 'example-package',
	service_endpoint: 'https://example.com/did-endpoint',
	type: 'package',
	metadata: ['owner' => 'Example Org'],
);

echo $result['did'] . PHP_EOL;

Namespaces

  • FAIR\DID\Crypto for encoding, canonicalization, and DID helpers
  • FAIR\DID\Keys for key generation, decoding, and export
  • FAIR\DID\PLC for PLC client and operation objects
  • FAIR\DID\Storage for local key/DID persistence
  • FAIR\DID for high-level DID lifecycle orchestration

Examples

Core examples remain in examples:

  • 01-generate-keys.php
  • 02-plc-operations.php
  • 03-key-storage.php
  • 04-export-keys.php
  • 05-generate-and-submit-did.php

WordPress examples were moved to the did-manager-wordpress package.

Testing

composer test
composer lint
composer analyze
  • fairpm/did-manager-wordpress for WordPress header parsing, readme parsing, and FAIR metadata generation

Security

Never commit private keys or generated keystore files to version control.

License

GPL-3.0-or-later. See LICENSE.md for details.