DocsGetting Started

Getting Started with RSCP

Choose your role to get started with the Road Safety Certification Protocol.

For Issuers

Issuers are companies (delivery platforms, fleet operators, training providers) that certify riders after they complete road safety training. As an issuer, you create and manage digital credentials for your riders.

Why Issue RSCP Credentials?

  • Demonstrate safety commitment - Show regulators and partners that your riders are trained
  • Interoperable credentials - Your credentials are verified by any RSCP-compatible system
  • Privacy by design - You keep full visibility while protecting rider privacy from third parties
  • Reduce compliance burden - Digital credentials simplify audits and reporting

Requirements

Register with Trust Anchor

Apply to the AutoviaTest.com to become a registered issuer

Meet training standards

Your training program must meet minimum curriculum requirements

Integrate the Issuer SDK

Use our TypeScript SDK to issue credentials programmatically

Credential Issuance Workflow

  1. Complete rider training - Rider completes your certified training program
  2. Generate credential - Create a credential with private attributes (email, phone, scores) and public attributes (name, level)
  3. Submit to registry - Only public attributes are submitted; private data stays with you
  4. Deliver to rider - Credential is delivered to the rider's wallet app

Quick Example

typescript
import { IssuerSDK } from '@rscp/issuer-sdk';

const issuer = new IssuerSDK({
  issuerId: 'did:rscp:issuer:your-company',
  privateKey: process.env.ISSUER_PRIVATE_KEY,
});

// Create a credential after training completion
const credential = await issuer.createCredential({
  holder: {
    did: 'did:key:z6MkhaXgBZDvotDkL...',
    givenName: 'Rahul',
    familyName: 'Kumar',
    email: 'rahul@email.com',      // Private
    phone: '+91-9876543210',       // Private
  },
  certification: {
    level: 'GOLD',
    testScore: 92,                 // Private
    hazardScore: 88,               // Private
  },
  validity: {
    issuanceDate: new Date(),
    expirationDate: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),
  },
});

// Submit public record to registry
await issuer.submitToRegistry(credential);

// Deliver to rider's wallet
await issuer.deliverToWallet(credential, holderWalletEndpoint);

For Verifiers

Verifiers are parties who need to check if a rider holds a valid road safety credential. This includes law enforcement, restaurant partners, building security, and platform partners.

No App Required

The simplest verification requires only a smartphone camera. Scan the QR code on the rider's credential and see instant results in your browser.

Verification Flow

1
Scan QR Code

Open your camera app and scan the QR code on the rider's credential

2
View Verification Page

Browser opens rscp.org/v/CODE showing credential status

3
See Verified Attributes

Name, certification level, validity period, and issuer

What You'll See

Disclosed (Public)
  • • Full name
  • • Certification level (Bronze/Silver/Gold)
  • • Valid from / Valid until dates
  • • Issuing organization
  • • Credential status (active/revoked)
Hidden (Private)
  • • Email address
  • • Phone number
  • • Test scores
  • • Hazard perception scores
  • • Training session details

Selective Disclosure

For advanced integrations, riders can create selective disclosure proofs. For example, they can prove "my test score is above 80%" without revealing the actual score.

json
// Example selective disclosure proof
{
  "disclosed": {
    "givenName": "Rahul",
    "level": "gold"
  },
  "predicates": [{
    "attribute": "testScore",
    "predicate": ">=",
    "threshold": 80,
    "satisfied": true  // Cryptographically proven!
  }]
}

For Developers

Build RSCP-compliant applications with our open-source SDKs. Whether you're building an issuer dashboard, wallet app, or verification system, we have you covered.

Quick Start

bash
# Install the SDK you need
npm install @rscp/issuer-sdk    # For issuers
npm install @rscp/wallet-sdk    # For wallet apps
npm install @rscp/verifier-sdk  # For verifiers

SDK Overview

Issuer SDKTypeScript

Create credentials, manage revocations, submit to registry

typescript
import { IssuerSDK } from '@rscp/issuer-sdk';

const issuer = new IssuerSDK({ issuerId, privateKey });
const credential = await issuer.createCredential(data);
await issuer.submitToRegistry(credential);
Wallet SDKTypeScript + React Native

Store credentials, create presentations with selective disclosure

typescript
import { WalletSDK } from '@rscp/wallet-sdk';

const wallet = new WalletSDK({ secureStorage });
await wallet.storeCredential(credential);
const presentation = await wallet.createPresentation({
  credential,
  disclose: ['name', 'level'],
  predicates: [{ attribute: 'testScore', op: '>=', value: 80 }],
});
Verifier SDKTypeScript

Verify credentials and presentations, check revocation status

typescript
import { VerifierSDK } from '@rscp/verifier-sdk';

const verifier = new VerifierSDK({ registryUrl });
const result = await verifier.verify(presentation);

if (result.valid) {
  console.log('Disclosed:', result.attributes);
  console.log('Predicates:', result.predicateResults);
}

Test Environment

Use our sandbox environment for development and testing:

typescript
// Connect to sandbox
const issuer = new IssuerSDK({
  issuerId: 'did:rscp:issuer:sandbox-company',
  privateKey: process.env.SANDBOX_KEY,
  registryUrl: 'https://sandbox.rscp.org/registry',
});

For Riders

As a delivery rider or driver, your road safety credential proves that you've completed certified training. You own your credential and control what information is shared.

What is a Road Safety Credential?

Think of it like a digital certificate that proves you've completed road safety training. It's stored in a wallet app on your phone and can be verified by scanning a QR code.

Your Rights

You own your credential

Your credential is stored on your phone, not on a central server

You control what's shared

Choose which information to reveal during verification

Your private data stays private

Email, phone, and test scores are never stored in the public registry

How to Get Certified

  1. Complete training - Your employer or platform will provide road safety training
  2. Pass the test - Complete the assessment with the required score
  3. Receive your credential - It will be delivered to your wallet app automatically
  4. Start using it - Show your QR code when needed

Using Your Wallet App

View Credentials

See all your certifications, their levels, and expiration dates

Show QR Code

Display your QR code for quick verification by others

Control Disclosure

Choose what information to share in each verification

Secure Storage

Credentials are protected by your phone's security features

Certification Levels

LevelTrainingValid For
Bronze2 hours basic training1 year
Silver4 hours + hazard training1 year
Gold8 hours comprehensive2 years

FAQ

What if I lose my phone?

Your credential can be recovered through your issuer. Contact your employer's support team to have it reissued to your new device.

When does my credential expire?

Credentials are valid for 1-2 years depending on level. You'll receive a notification before expiration to complete renewal training.

Can I use my credential with multiple employers?

Yes! Your credential is portable. If you switch platforms or have multiple employers, your certification remains valid.