Downloads · 30 days
0
ashecribb/learnstore
learnstore is a machine learning model from ashecribb. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
A scalable microservice for creating permanent, verifiable academic records on IPFS.
Downloads · 30 days
0
Access
Public
Updated Dec 16, 2025
Repo size
—
Likes
0
Public
Click a slice to open those files.
.js154 KB · 49%
From the Hugging Face model README
A scalable microservice for creating permanent, verifiable academic records on IPFS.
This project provides a suite of tools for educational institutions to transition to a model of student-owned, verifiable digital records. It acts as a "Permanent Record as a Service," leveraging the power of IPFS for immutable storage and Verifiable Credentials for cryptographic proof.
/batch-archive): A scalable endpoint for institutions to archive large volumes of student work (e.g., end-of-semester projects) to IPFS. It returns a single, easily-managed root CID for the entire batch./issue-credential): A system for issuing tamper-proof academic credentials (e.g., for a diploma or a specific skill) that are cryptographically linked to the underlying student work stored on IPFS./portfolio.html) with client-side encryption, and a public verifier (/verify.html) that can perform "deep verification" of a credential and its linked proof of work./add-learning-object): A tool for creating permanent, resilient archives of open educational resources./playground.html): An interactive tool for running small AI/ML models directly in the browser from IPFS.npm install
Create a .env file in the root of the project and add your NFT_STORAGE_KEY.
NFT_STORAGE_KEY=<YOUR_API_KEY>
node index.js
The server will start, and if keys.json is not found, it will generate a new key pair for signing Verifiable Credentials.
A scalable endpoint for creating a permanent archive of multiple files in a single transaction.
Endpoint: POST /batch-archive
Body (JSON): An object with an items property, which is an array of objects. Each object must have a url (the URL of the content to pin) and can have an optional metadata object.
{
"items": [
{
"url": "https://example.com/student-a/thesis.pdf",
"metadata": { "studentId": "123", "title": "My Final Thesis" }
},
{
"url": "https://example.com/student-b/project.zip",
"metadata": { "studentId": "456", "title": "Capstone Project" }
}
]
}
The endpoint returns a single manifestCid for the entire batch.
Issues a W3C-compliant Verifiable Credential (VC) as a JWT.
Endpoint: POST /issue-credential
Body (JSON):
studentDid (string): The Decentralized Identifier of the student.claims (object): A JSON object containing the claims to be included in the credential (e.g., { "degree": "Bachelor of Science" }).proofOfWorkCID (string, optional): The IPFS CID of a manifest file (e.g., from a batch archive) that contains the evidence supporting this credential. This enables "deep verification."The server signs the credential with its private key. The public key is available at /.well-known/jwks.json for verifiers.
Pins a single educational resource with rich metadata.
Endpoint: POST /add-learning-object (multipart/form-data)
Fields: files, title, author, subject, gradeLevel, license, description.
Stores a pre-encrypted blob of data. The server has no knowledge of the contents.
Endpoint: POST /add-encrypted-object (multipart/form-data)
Fields: file
Checks the pinning status of a CID on NFT.storage.
Endpoint: GET /status/:cid
The question of how a K-12 school in the U.S. could issue DIDs requires a thoughtful approach that balances state-level educational requirements with federal privacy laws. A successful implementation would not be a single, monolithic system, but a federated trust network.
Adopt the did:web Method: This is the most practical starting point. Each school district could host their DID documents on their own web servers, making their DIDs resolvable via standard HTTPS. This avoids the need for a custom blockchain and leverages existing, trusted infrastructure. A school's DID might look like did:web:bostonschools.org:students:12345.
State-Level Trust Registries: Each state's Department of Public Instruction (DPI) could maintain a cryptographically-verifiable list of all accredited school districts in their state. This registry would essentially be a "DID of DIDs," allowing anyone to confirm that a particular school district is a legitimate issuer of student credentials.
Cross-State Interoperability: A national body, perhaps facilitated by the U.S. Department of Education, could maintain a registry of all state DPIs. This would create a chain of trust from the federal level down to the individual school district, allowing a university in California to verify a credential from a high school in Massachusetts.