Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/animo/openid4vc-playground
OpenID4VC Playground for issuing SD-JWT VCs
https://github.com/animo/openid4vc-playground
aries-framework-javascript did openid4vc openid4vci openid4vp sd-jwt sd-jwt-vc siopv2 ssi
Last synced: 3 days ago
JSON representation
OpenID4VC Playground for issuing SD-JWT VCs
- Host: GitHub
- URL: https://github.com/animo/openid4vc-playground
- Owner: animo
- License: apache-2.0
- Created: 2024-01-11T16:50:02.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-23T08:16:07.000Z (3 months ago)
- Last Synced: 2024-08-23T09:31:38.986Z (3 months ago)
- Topics: aries-framework-javascript, did, openid4vc, openid4vci, openid4vp, sd-jwt, sd-jwt-vc, siopv2, ssi
- Language: TypeScript
- Homepage: https://openid4vc.animo.id
- Size: 3.26 MB
- Stars: 7
- Watchers: 1
- Forks: 7
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Animo OpenID4VC Playground
> [!TIP]
> Check out the demo at https://openid4vc.animo.id## ✨ Hi there!
Welcome to the repository of Animo's OpenID4VC Playground. This interactive playground demonstrates the use of OpenID4VC with different credential formats (such as SD-JWT VCs). This demo is built using [Aries Framework Javascript (AFJ)](https://github.com/hyperledger/aries-framework-javascript). AFJ is a framework written in TypeScript for building decentralized identity services.
## 🛠️ Usage
### Prerequisites
- [NodeJS](https://nodejs.org/en/) v18.X.X - Other versions may work, not tested
- [pnpm](https://pnpm.io/installation)
- [Git](https://git-scm.com/downloads) - You probably already have this### 🖥 App
Copy the `.env.example` file to a `.env.local` file and set the environment variables. **This is not needed for development**.
```bash
cd app
cp .env.example .env
```| Variable | Description |
| --------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `NEXT_PUBLIC_API_URL` | Used in the frontend application to connect with the backend. Default to `http://localhost:3001` for development. |### 🎛️ Agent
Copy the `.env.example` file to a `.env.local` file and set the environment variables. **This is not needed for development**.
```bash
cd agent
cp .env.example .env
```| Variable | Description |
| ------------------ | --------------------------------------------------------------------------------------------- |
| `AGENT_HOST` | Used in the backend application for the agent. The url at which the server will be available. |
| `AGENT_WALLET_KEY` | Used in the backend application for the agent. Should be secure and kept private. |> [!IMPORTANT]
> The issuer will use `did:web` for issuing credentials, but this requires `https` to be used. When developing locally it is recommend
> to use `ngrok` (`npx ngrok http 3001`) and use that url as the `AGENT_HOST` variable. Make sure to also set the `NEXT_PUBLIC_API_URL` variable in the app to the ngrok.
>
> We may add issuance using did:key in development if the host url does not start with `https`.### Install Dependencies
```bash
pnpm install
```### Development
Open three terminal windows, and then run the following:
```bash
npx ngrok http 3001
```Copy the https url from the ngrok command and set that as the `AGENT_HOST`
```bash
cd agent
AGENT_HOST=https://30f9-58-136-114-148.ngrok-free.app pnpm dev
``````bash
cd app
pnpm dev
```## 🖇️ How To Contribute
You're welcome to contribute to this playground. Please make sure to open an issue first!
This playground is open source and you're more than welcome to customize and use it to create your own OpenID4VC Playground. If you do, an attribution to [Animo](https://animo.id) would be very much appreciated!