Empeiria Documentation
  • Getting Started
    • Welcome to Empeiria
    • 5 minutes Quickstart
    • Tutorial: Credential Issuance & Verification
      • Overview
      • Understanding Key Concepts
      • Project Setup
      • Deploying the Issuer
      • Uploading the Credential Schema
      • Issuing Credentials
      • Frontend for Credential Issuance
      • Testing Credential Issuance
      • Deploying the Verifier
      • Setting Up the Verification Flow
      • Creating a Verification Endpoint
      • Creating a Protected Dashboard
      • Testing the Verification Flow
      • Summary & Next Steps
  • Understand
    • EVDI Architecture
    • Self-Sovereign Identity
      • Technical Foundations
      • Roles in the SSI framework
      • Protocols and Standards
  • Develop
    • One-click deployment
      • Introduction
      • Registration
      • Login
      • Creating an Issuer
      • Issuer Data Description
      • Creating a Verifier
      • Verifier Data Description
    • Issuer
      • Terminology and Concepts
      • DID Document Management
      • Schema Management
      • Issuing Credentials and Interacting With Wallets
      • Revocations
      • Security Considerations
      • Error Handling and Troubleshooting
      • Future Enhancements
      • References and Standards
      • MCP Server Integration
      • FAQ
      • API Reference
        • Token
        • Schema
        • Offering
        • Metadata
        • Credential
        • Blockchain
        • Authorization
    • Verifier
      • Terminology and Concepts
      • Architecture Overview
      • Core Responsibilities
      • Query Language
      • Client Configuration
      • Frontend Integration
      • Revocations
      • Server-Side VP Queries
      • Security Considerations
      • Error Handling and Troubleshooting
      • Future Enhancements
      • References and Standards
      • MCP Server Integration
      • FAQ
      • API Reference
        • VP Query
        • QR Code
        • Authorization
    • Wallet SDK (Coming soon)
    • Introduction to cosmwasm
  • Empe Blockchain
    • Overview
    • Chain Architecture
      • Auth
      • Authz
      • Bank
      • Distribution
      • Governance
      • Staking
      • IBC
      • DidDoc
      • Vesting
      • Minter
      • Stablefee
      • LinkedResources
    • Important links
    • Validators Guide
      • New validator
      • Hardware requirements
      • Required software installation
      • Go installation
      • Install prebuild binary
      • Install binary from source code (option B)
      • Configure a node
      • Cosmovisor setup
      • Install wasmvm
      • Sync with state-sync
      • Full state sync from archive snapshot
      • Latest snapshot
      • Run a Validator
      • Migration to v0.2.2
      • Migration to v0.3.0
      • Migration to v0.4.0
      • FAQ
  • User Guide
    • Empe DID Wallet
      • Intro
      • Download and first launch
      • Create or import did
      • Main screen overview
      • How to claim credential from issuer
      • How to use credential with verifier
      • Settings and other options
    • Keplr Wallet and Blockchain Operations
      • How to Connect Keplr Wallet
    • Ping Pub operation
    • Staking Tokens Guide
    • Voting on Governance Proposals Guide
    • Sending Tokens Guide
    • Airdrop
      • On-Chain Testnet Airdrop
      • Faucet Guide: How to Claim Testnet Tokens?
  • Appendix
    • Glossary
Powered by GitBook
On this page
  1. Develop
  2. Issuer
  3. API Reference

Offering

PreviousSchemaNextMetadata

Get a specific offering by ID

get

Retrieves an offering by its ID

Path parameters
idstringRequired

The unique identifier of the offering to retrieve

Responses
200
Found
application/json
404
Not Found
application/json
get
GET /v1/offerings/{id} HTTP/1.1
Host: api
Accept: */*
{
  "id": "830e3227-c36d-4e96-96a6-71701da6752b",
  "credential_issuer": "http://localhost:3000",
  "credential_configuration_ids": [
    "ProofOfPurchase"
  ],
  "display": {
    "name": "Empe",
    "locale": "en-US"
  },
  "grants": {
    "authorization_code": {
      "issuer_state": "tHnoFiydCIqgvY88-DFc5gFNrqRMMS8y"
    }
  },
  "qr_code_url": "http://localhost:3000/api/v1/issuer-qrcode-data/ddd07d52-71ac-4f09-9f67-0ab8506c30d2",
  "offering_id": "830e3227-c36d-4e96-96a6-71701da6752b",
  "offering_full_url": "http://localhost:3000/api/v1/offering/830e3227-c36d-4e96-96a6-71701da6752b",
  "redemption_limit": 10,
  "expires_at": "2025-05-09T13:14:55.000Z"
}

Get QR code for an offering

get

Retrieves the QR code for a specific offering

Path parameters
idstringRequired

The unique identifier of the offering

Responses
200
The QR code data for the offering
application/json
Responsestring
404
Not Found
application/json
get
GET /v1/offerings/{id}/qr-code HTTP/1.1
Host: api
Accept: */*
text

Issue a credential from an offering Creates a verifiable credential from an offering and assigns it to the authenticated holder

post

Issues a credential from an existing offering

Authorizations
Path parameters
idstringRequired

The unique identifier of the offering to issue

Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
post
POST /v1/offerings/{id}/claim HTTP/1.1
Host: api
Authorization: Bearer JWT
Accept: */*
{
  "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "vc": {
    "@context": [
      "https://www.w3.org/2018/credentials/v1"
    ],
    "type": [
      "VerifiableCredential"
    ],
    "id": "urn:uuid:d290f1ee-6c54-4b01-90e6-d701748f0851",
    "issuer": "did:empe:0x1234567890abcdef",
    "issuanceDate": "2023-01-01T00:00:00Z"
  }
}
  • GETList all credential offerings
  • POSTCreate a new credential offering with QR code Validates the credential subject against the schema and creates an offering that can be claimed by a holder. Generates a QR code for the offering.
  • GETGet a specific offering by ID
  • GETGet QR code for an offering
  • POSTIssue a credential from an offering Creates a verifiable credential from an offering and assigns it to the authenticated holder

List all credential offerings

get

Retrieves all available offerings

Responses
200
A list of all offerings in the system
application/json
get
GET /v1/offerings HTTP/1.1
Host: api
Accept: */*
200

A list of all offerings in the system

[
  {
    "id": "text",
    "credential_issuer": "text",
    "credential_configuration_ids": [
      "text"
    ],
    "display": {
      "locale": "text",
      "name": "text"
    },
    "grants": {
      "authorization_code": {
        "issuer_state": "text"
      }
    },
    "credential_subject": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "recipient": "text",
    "redemption_limit": 1,
    "expires_at": "2025-06-19T15:03:46.901Z",
    "redemptions": [
      {
        "id": "text",
        "offering_id": "text",
        "credential_id": "text",
        "recipient_did": "text",
        "redeemed_at": "2025-06-19T15:03:46.901Z",
        "offering": {
          "id": "text",
          "credential_issuer": "text",
          "credential_configuration_ids": [
            "text"
          ],
          "display": {
            "locale": "text",
            "name": "text"
          },
          "grants": {
            "authorization_code": {
              "issuer_state": "text"
            }
          },
          "credential_subject": {
            "ANY_ADDITIONAL_PROPERTY": "anything"
          },
          "recipient": "text",
          "redemption_limit": 1,
          "expires_at": "2025-06-19T15:03:46.901Z",
          "redemptions": [
            "[Circular Reference]"
          ]
        },
        "credential": {
          "id": "text",
          "configuration_id": "text",
          "configuration": {
            "id": "text",
            "name": "",
            "type": "",
            "version": 1,
            "schemaUri": "text",
            "schemaBody": {}
          },
          "vc": {
            "evidence": {},
            "credentialStatus": [
              {
                "id": "text",
                "type": "BitstringStatusListEntry",
                "statusPurpose": "refresh",
                "statusListIndex": 1,
                "statusListCredential": "text",
                "statusSize": 1,
                "statusMessage": [
                  {
                    "message": "text",
                    "status": "text",
                    "ANY_ADDITIONAL_PROPERTY": "anything"
                  }
                ]
              }
            ],
            "credentialSchema": {
              "type": "JsonSchemaValidator2018",
              "id": "text"
            },
            "expirationDate": "text",
            "proof": {
              "challange": "text",
              "nonce": "text",
              "jws": "text",
              "proofValue": "text",
              "proofPurpose": "assertionMethod",
              "verificationMethod": "text",
              "created": "text",
              "type": "EcdsaSecp256k1Signature2019"
            },
            "credentialSubject": {
              "ANY_ADDITIONAL_PROPERTY": "anything"
            },
            "issuanceDate": "text",
            "issuer": {
              "name": "text",
              "id": "text"
            },
            "id": "text",
            "type": [
              "text"
            ],
            "@context": [
              "text"
            ]
          },
          "revoked": false
        }
      }
    ]
  }
]

Create a new credential offering with QR code Validates the credential subject against the schema and creates an offering that can be claimed by a holder. Generates a QR code for the offering.

post

Creates a new credential offering

Authorizations
Body

Request containing credential type, subject data and optional recipient

credential_typestringRequired

Type of credential to be issued

Example: ProofOfPurchase
recipientstringOptional

Optional recipient DID

Example: did:empe:testnet:123456789abcdef
redemption_limitnumber · doubleOptional

Optional redemption limit

Example: 1
expires_atstring · date-timeOptional

Optional expiration date

Example: 2025-05-09T13:14:55.000Z
Responses
201
Created
application/json
404
Not Found
application/json
post
POST /v1/offerings HTTP/1.1
Host: api
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 237

{
  "credential_type": "ProofOfPurchase",
  "credential_subject": {
    "ticket": "Concert Ticket",
    "seat": "A12",
    "description": "Super concert"
  },
  "recipient": "did:empe:testnet:123456789abcdef",
  "redemption_limit": 1,
  "expires_at": "2025-05-09T13:14:55.000Z"
}
{
  "id": "830e3227-c36d-4e96-96a6-71701da6752b",
  "credential_issuer": "http://localhost:3000",
  "credential_configuration_ids": [
    "ProofOfPurchase"
  ],
  "display": {
    "name": "Empe",
    "locale": "en-US"
  },
  "grants": {
    "authorization_code": {
      "issuer_state": "tHnoFiydCIqgvY88-DFc5gFNrqRMMS8y"
    }
  },
  "qr_code_url": "http://localhost:3000/api/v1/issuer-qrcode-data/ddd07d52-71ac-4f09-9f67-0ab8506c30d2",
  "offering_id": "830e3227-c36d-4e96-96a6-71701da6752b",
  "offering_full_url": "http://localhost:3000/api/v1/offering/830e3227-c36d-4e96-96a6-71701da6752b",
  "redemption_limit": 10,
  "expires_at": "2025-05-09T13:14:55.000Z"
}