Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions app/[[...mdxPath]]/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { Banner, Head } from 'nextra/components'
import { getPageMap } from 'nextra/page-map'
import { Footer, Layout, Navbar } from 'nextra-theme-docs'
import '../../globals.css'
import type { PropsWithChildren } from 'react'

export const metadata = {
// Define your metadata here
// For more information on metadata API, see: https://nextjs.org/docs/app/building-your-application/optimizing/metadata
}

const banner = <Banner storageKey="some-key">The Paradym Wallet supports OpenID4VC 1.0 🎉</Banner>
const navbar = (
<Navbar
logo={<>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="24" height="24" rx="120" fill="white" />
<path d="M561.458 491.99C561.458 491.995 561.453 492 561.447 492H438.442C431.814 492 426.442 497.373 426.442 504V812C426.442 818.627 421.069 824 414.442 824H330C323.373 824 318 818.627 318 812V395.587C318 388.959 323.373 383.587 330 383.587H561.458C585.91 383.587 605.721 403.389 605.721 427.83V447.736C605.721 472.174 585.915 491.974 561.468 491.979C561.462 491.979 561.458 491.984 561.458 491.99ZM550.489 200.212C550.432 200.21 550.387 200.163 550.387 200.106C550.387 200.047 550.339 200 550.281 200H330C323.373 200 318 205.373 318 212V296.392C318 303.02 323.373 308.392 330 308.392H540.318C540.385 308.392 540.439 308.447 540.439 308.514C540.439 308.583 540.498 308.639 540.568 308.635C543.085 308.493 545.623 308.392 548.181 308.392C619.081 308.392 676.558 365.844 676.558 436.712C676.558 507.58 619.081 565.031 548.181 565.031C545.623 565.031 543.085 564.931 540.568 564.789C540.498 564.785 540.439 564.84 540.439 564.91C540.439 564.977 540.385 565.031 540.318 565.031H491.57C484.942 565.031 479.57 570.404 479.57 577.031V661.424C479.57 668.051 484.942 673.424 491.57 673.424H541.542C675.893 672.821 785 566.883 785 436.712C785 306.575 680.692 205.336 550.489 200.212Z" fill="url(#paint0_linear_580_265)" />
<defs>
<linearGradient id="paint0_linear_580_265" x1="318" y1="511.99" x2="784.979" y2="511.99" gradientUnits="userSpaceOnUse">
<stop stop-color="#A77BF3" />
<stop offset="0.51" stop-color="#635CFF" />
<stop offset="1" stop-color="#93F5EC" />
</linearGradient>
</defs>
</svg>


<span style={{ marginLeft: '.4em', fontWeight: 800 }}>
Paradym
</span>
</>}
// ... Your additional navbar options
/>
)
const footer = <Footer>{new Date().getFullYear()} © Paradym.</Footer>





export default async function RootLayout({ children }: PropsWithChildren) {
return (
<html
// Not required, but good for SEO
lang="en"
// Required to be set
dir="ltr"
// Suggested by `next-themes` package https://github.com/pacocoursey/next-themes#with-app
suppressHydrationWarning
>
<Head
// ... Your additional head options
>
{/* Your additional tags should be passed as `children` of `<Head>` element */}
</Head>
<body>
<Layout
banner={banner}
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/animo/paradym-eudi-docs"
footer={footer}
// ... Your additional layout options
>
{children}
</Layout>
</body>
</html>
)
}
27 changes: 27 additions & 0 deletions app/[[...mdxPath]]/page.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { generateStaticParamsFor, importPage } from 'nextra/pages'
import { useMDXComponents as getMDXComponents } from '../../mdx-components'

export const generateStaticParams = generateStaticParamsFor('mdxPath')

export async function generateMetadata(props) {
const params = await props.params
const { metadata } = await importPage(params.mdxPath)
return metadata
}

const Wrapper = getMDXComponents().wrapper

export default async function Page(props) {
const params = await props.params
const {
default: MDXContent,
toc,
metadata,
sourceCode
} = await importPage(params.mdxPath)
return (
<Wrapper toc={toc} metadata={metadata} sourceCode={sourceCode}>
<MDXContent {...props} params={params} />
</Wrapper>
)
}
1 change: 0 additions & 1 deletion app/docs/welcome/page.mdx

This file was deleted.

50 changes: 0 additions & 50 deletions app/layout.tsx

This file was deleted.

1 change: 0 additions & 1 deletion app/page.mdx

This file was deleted.

48 changes: 48 additions & 0 deletions components/Card.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import type { PropsWithChildren } from 'react'

import Link from 'next/link'

export interface CardProps {
description: string
title: string
image?: boolean
href: string
tags?: string[]
deprecated?: boolean
}

export const Card: React.FC<PropsWithChildren<CardProps>> = ({
description,
title,
href,
tags,
deprecated,
...props
}) => {
return (
<Link
href={href}
className={
'flex flex-col justify-start p-6 overflow-hidden rounded-lg border border-gray-200 nx-bg-transparent shadow-xs dark:border-neutral-800 hover:bg-slate-50 hover:shadow-md dark:hover:bg-neutral-900'
}
{...props}
>
<span className={'font-semibold dark:text-neutral-200 dark:hover:nx-text-neutral-50'}>
{title}
{deprecated && <span className="text-xs text-red-500"> Deprecated</span>}
</span>
<p className="mt-2">{description}</p>
<div className="flex-row flex flex-wrap pt-2 gap-2">
{tags &&
tags.map((t) => (
<span
key={t}
className="bg-blue-100 text-blue-800 text-xs font-medium px-2.5 py-0.5 rounded-sm dark:bg-blue-900 dark:text-blue-300"
>
{t}
</span>
))}
</div>
</Link>
)
}
13 changes: 13 additions & 0 deletions components/Cards.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import type { PropsWithChildren } from 'react'

export interface CardsProps {
children: React.ReactNode
}

export const Cards: React.FC<PropsWithChildren<CardsProps>> = ({ children, ...props }) => {
return (
<div className="grid grid-cols-1 lg:grid-cols-2 mt-8 gap-8" {...props}>
{children}
</div>
)
}
29 changes: 29 additions & 0 deletions content/_meta.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
export default {
index: {
title: 'Welcome',
},
'-- Getting Started': {
type: 'separator',
title: 'Getting Started',
},
'what-we-support': 'What we support',
'install-the-wallet': 'Install the Wallet',
'integrate-with-the-wallet': 'Integrate with the Wallet',
'contact': 'Contact us',
'-- Projects': {
type: 'separator',
title: 'Projects',
},
'potential': 'Potential',
'aptitude': 'Aptitude',
'eudiw-unfold': 'EUDIW Unfold',
'findynet': 'Findynet',
'eduwallet': 'Eduwallet',
'-- Other resources': {
type: 'separator',
title: 'Other resources',
},
'paradym-rp-platform': 'Paradym Relying Party Platform',
'playground': 'Animo Playground',
'demos-and-video': 'Demonstrations and video'
}
4 changes: 4 additions & 0 deletions content/aptitude/_meta.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export default {
index: 'Aptitude',
payments: 'Payments'
}
13 changes: 13 additions & 0 deletions content/aptitude/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Callout } from 'nextra/components'

# Aptitude

The [Aptitude](https://aptitude.digital-identity-wallet.eu/) consortium is one of the Large Scale Pilot consortia selected by the European Commission. Aptitude will run from 2025 - 2027 and features 12 European member states, as well as 117 public and private partners, who committed to work together to test fours common EU use cases with the digital identity wallet.

The use cases tested in Aptitude are:

- Digital Travel Credentials
- Mobile Vehicle Registration Certificate
- Smart Ticketing & Check-in
- Payments with Strong Customer Authentication

23 changes: 23 additions & 0 deletions content/aptitude/payments.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Callout } from 'nextra/components'


# Payments with Strong Customer Authentication

<Callout type="warning">Warning: this feature is experimental and still has to be polished and merged into the stable release. Flows might break or be unreliable. Test at your own risk.</Callout>

> "Payments & Strong Customer Authentication (SCA) allows citizens to access banking services and make payments directly from their Digital Identity Wallet securely, easily, and in full compliance with European standards."
> -Read more about the [Aptitude use case](https://aptitude.digital-identity-wallet.eu/wallet-use/payments-with-strong-customer-authentication/)

The TS12 / Payments flow can currently only be tested with an experimental version of the Paradym wallet and a special Payments version of the playground created for the Aptitude project.

**To test**

Get the wallet:
- If you are testing on iOS download [TestFlight](https://apps.apple.com/us/app/testflight/id899247664).
- Download the experimental version of the Paradym wallet ([iOS](https://testflight.apple.com/join/rxhN5uaw), [Android](https://expo.dev/accounts/animo-id/projects/paradym-wallet/builds/29414cda-2dbd-45bb-8da3-cfc8cea78df3))

Then on the special [Payments version of the playground](https://eudi-payments.animo.id/):
- Issue the [Wero Cool card](https://eudi-payments.animo.id/?authorization=none&credentialType=2&deferBy=none&dpop=false&format=dc%2Bsd-jwt&issuerId=7cc028a3-8ce2-432a-bf19-5621068586df&keyAttestation=false&tab=issue&walletAttestation=false)
- Issue a [Mobile Driving License](https://eudi-payments.animo.id/?authorization=none&credentialType=0&deferBy=none&dpop=false&format=mso_mdoc&issuerId=188e2459-6da8-4431-9062-2fcdac274f41&keyAttestation=false&tab=issue&walletAttestation=false)
- Issue [a PID](https://eudi-payments.animo.id/?authorization=none&credentialType=1&deferBy=none&dpop=false&format=mso_mdoc&issuerId=188e2459-6da8-4431-9062-2fcdac274f41&keyAttestation=false&tab=issue&walletAttestation=false)
- Rent a car and [present your mDL](https://eudi-payments.animo.id/?amount=100&presentationDefinitionId=c01ea0f3-34df-41d5-89d1-50ef3d181855__0&requestScheme=openid4vp%3A%2F%2F&requestSignerType=x5c&responseMode=direct_post.jwt&tab=verify), make a payment and sign the rental contract (make sure to enable the "Qualified Electronic Signature" and "Payment" toggles)
18 changes: 18 additions & 0 deletions content/contact.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## Contact us

The Paradym EUDI Wallet is used in several EU Pilot Projects. To ensure we keep the development experience uniform we ask you to go through the following common support channels.

| For | Go to |
| :------------ | :---------: |
| Talking to the team | Join our [weekly open call](#weekly-open-call). |
| Raising a public issue or technical discussion | Create an issue on the [GitHub repository](https://github.com/animo/paradym-wallet). Issues are public, enabling anyone to see current issues and their status. |
| Raising a private issue | [Email us](mailto:ana@animo.id). Please put 'EUDI Wallet' and other helpful information like your pilot project and/or working group in subject email. |
| Discussing your project | Post in the #paradym-wallet channel in the [Paradym Community Slack](https://join.slack.com/t/paradymgroup/shared_invite/zt-225avbgsm-LXzkDdLV59cJ5v76Xu9y5A) |
Comment on lines +5 to +10
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very hard to read unformatted tables

Suggested change
| For | Go to |
| :------------ | :---------: |
| Talking to the team | Join our [weekly open call](#weekly-open-call). |
| Raising a public issue or technical discussion | Create an issue on the [GitHub repository](https://github.com/animo/paradym-wallet). Issues are public, enabling anyone to see current issues and their status. |
| Raising a private issue | [Email us](mailto:ana@animo.id). Please put 'EUDI Wallet' and other helpful information like your pilot project and/or working group in subject email. |
| Discussing your project | Post in the #paradym-wallet channel in the [Paradym Community Slack](https://join.slack.com/t/paradymgroup/shared_invite/zt-225avbgsm-LXzkDdLV59cJ5v76Xu9y5A) |
| For | Go to |
|-:----------------------------------------------|-:-:-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Talking to the team | Join our [weekly open call](#weekly-open-call). |
| Raising a public issue or technical discussion | Create an issue on the [GitHub repository](https://github.com/animo/paradym-wallet). Issues are public, enabling anyone to see current issues and their status. |
| Raising a private issue | [Email us](mailto:ana@animo.id). Please put 'EUDI Wallet' and other helpful information like your pilot project and/or working group in subject email. |
| Discussing your project | Post in the #paradym-wallet channel in the [Paradym Community Slack](https://join.slack.com/t/paradymgroup/shared_invite/zt-225avbgsm-LXzkDdLV59cJ5v76Xu9y5A) |


The team behind the Paradym is the [Animo](https://animo.id/) team. For business inquiries you can reach us directly by [email](mailto:contact@animo.id).

### Weekly open call

Every week on XXX at XXX CEST we host a public walk-in meeting suitable for any questions or discussions.

Join the call [directly](), or [add it to your calendar]().
8 changes: 8 additions & 0 deletions content/demos-and-video.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Demonstrations and video

This page features a collection of video's to demonstrate EUDI flows.

- [Paradym Wallet Feature Playlist](https://www.youtube.com/watch?v=koetZfHSvKY&list=PLopHpZBbk8wN5xHgqSCncUZ4wy7cblu4A)
- [Paradym Wallet & French National Playground ](https://youtu.be/BkWGGCjuW4U?si=09a-1jq711NBbiTR). Demo showing the Paradym wallet working with the web verifier from the French National playground.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [Paradym Wallet & French National Playground ](https://youtu.be/BkWGGCjuW4U?si=09a-1jq711NBbiTR). Demo showing the Paradym wallet working with the web verifier from the French National playground.
- [Paradym Wallet & French National Playground](https://youtu.be/BkWGGCjuW4U?si=09a-1jq711NBbiTR). Demo showing the Paradym wallet working with the web verifier from the French National playground.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should record some new flows for the french wallet integration, and the payments

- [Signing QES with the Paradym Wallet](https://youtu.be/RbLorfRRbOY?si=APss4qsn176LfNog)
- [Deferred Issuance in the Paradym Wallet](https://youtu.be/2EnenkQRuc8?si=BtwPw45VgpXftg9o)
3 changes: 3 additions & 0 deletions content/eduwallet.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Eduwallet

under construction
10 changes: 10 additions & 0 deletions content/eudiw-unfold.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Unfold
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can just take the contents of the French playground docs we have submitted but with the correct link (france.playground.animo.id, the one in their environment doesn't work yet)


under construction



https://playground.france-identite.gouv.fr/

https://playground.france-identite.gouv.fr/doc/marketplace/verifiers/animo/

3 changes: 3 additions & 0 deletions content/findynet.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Findynet

The Paradym wallet is participating in the [Findynet Cooperative](https://findynet.fi/) effort to fund and test digital identity wallets with the Finnish market. Within the projects, participating wallets committed to support the technical requirements of the Findy network and translate their wallets into Finnish and Swedish.
31 changes: 31 additions & 0 deletions content/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Callout } from 'nextra/components'



# Welcome

<Callout type="important">Questions or issues? Read about our weekly open call or how to contact us [here](contact.mdx).</Callout>


This is your guide to the Paradym EUDI Wallet 🇪🇺.

The Paradym Wallet is the identity wallet companion to the [Paradym](https://paradym.id/) digital identity platform, which handles issuance, verification and trust management for Relying Parties. This site describes how to integrate with and use the **[Public Beta](todo:add)** of the Paradym Wallet, which supports experimental features and is used in several EU Pilots.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd link to the install page here for the todo:add


For the public, stable, version of the Paradym Wallet you can download the app for [iOS](https://apps.apple.com/nl/app/paradym-wallet/id6449846111?l=en) and [Android](https://play.google.com/store/apps/details?id=id.paradym.wallet).


<Cards>
<Card
title="🛠️ How to integrate with the Paradym wallet"
description="Integrate your EUDI solution with the Paradym Wallet"
href="docs/integrate"
tags={['SD-JWT VC', 'mDoc', 'OpenID4VC']}
/>
<Card
title="🚀 APTITUDE"
description="Information for APTITUDE Pilot"
href="docs/aptitude"
tags={['German Wallet']}
/>
</Cards>

16 changes: 16 additions & 0 deletions content/install-the-wallet.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Callout } from 'nextra/components'

# Install the wallet

This page describes how to integrate with and use the **[Public Beta](todo:add)** of the Paradym Wallet, which supports experimental features and is used in several EU Pilots. The public, stable, version of the Paradym Wallet can be found in [app stores](https://paradym.id/products/paradym-mobile-wallet).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why todo:add, you add the link below?



## iOS

<Callout type="info">To test the app on iOS you need to have [TestFlight](https://apps.apple.com/us/app/testflight/id899247664) installed on your mobile device.</Callout>

Go to https://testflight.apple.com/join/TpcukxR7 and follow the instructions on how to install the app to your device.

## Android

Go to https://play.google.com/apps/testing/id.animo.ausweis and follow the instructions on how to install the app to your device
Loading
Loading