Receive a Credential
When to use
An issuer is offering you a credential. There are three delivery mechanisms supported on IDA:
- In-platform — the credential is issued to your DID; you see it appear in
/credentials. - DIDComm — the issuer sends an encrypted message to your DIDComm endpoint; you accept it from the wallet’s “Pending” list.
- Out-of-band link — the issuer hands you a URL; clicking it opens the platform with a confirmation dialog.
Before you begin
- You have shared your DID with the issuer (in-platform: you signed in; DIDComm/OOB: you sent your DID via email or QR).
- The credential is for your DID — verify the
credentialSubject.idfield matches.
Steps (in-platform delivery)
- The issuer enters your DID in their portal and clicks Issue.
- You see a notification (bell icon) on your dashboard within seconds.
- Open
/credentials— the new VC is at the top of the list with a New badge. 4. Click the credential to open the detail page.
Steps (DIDComm delivery)
- The issuer sends a DIDComm
issue-credentialmessage to your DID’sDIDCommMessagingendpoint. - The platform receives it via
POST /api/v1/didcomm/receiveand stores it as a pending message. - Open
/inbox(or the wallet’s pending tab). You see “Credential offer from did:adi:0xUniv…” with the schema name. - Click Accept. The platform sends the response, the issuer signs and returns the VC, and it lands in your
/credentialslist.
Steps (Out-of-band link)
- The issuer hands you a URL like
https://adid.dev/credentials/claim?offerId=abc123. - Click the URL while signed in. The portal verifies the offer is for your DID and renders an accept dialog.
- Click Accept. Same outcome as DIDComm delivery.
Verify
The credential should appear in GET /api/v1/credentials:
Troubleshooting
3.2.3. Viewing & Managing Your Credentials ##### When to use
Day-to-day inspection of what you hold and where it came from.
Before you begin
- Signed in as a holder.
- At least one credential received.
Steps
- Navigate to
/credentials. - Filter by:
- Issuer — type-ahead search backed by the trusted issuers list.
- Schema — select from a dropdown of received schema types.
- Status —
active,revoked,expired,suspended.
- Click any credential row to open the detail.
- The detail page shows:
- Claims — pretty-printed.
- Issuer — DID, with click-through to Trust Explorer.
- Status — live revocation check (calls §3.2.5 automatically).
- Raw VC — collapsible JSON dump.
- Actions — Create presentation, Generate ZK proof, Delete, Export.
API
Verify
The list count matches the badge on the Credentials sidebar tile.
Troubleshooting
A credential that disappears from the list typically had its row deleted. Deletion is local (the chain anchor remains). If you need to restore, contact the issuer for a fresh copy.
3.2.4. Creating a Verifiable Presentation ##### When to use
A verifier has asked you for a presentation — typically by sharing a Proof Request URL/QR (see §5.2). You want to compile one or more of your VCs into a signed VP and submit it.
Before you begin
- The verifier’s Proof Request (a Presentation Definition per DIF Presentation Exchange v2).
- The VCs that satisfy the request.
Steps
- Open the Proof Request (URL or QR scan in the wallet).
- The portal/wallet matches the request against your held VCs and shows you which credentials would satisfy each input descriptor.
3. Approve. The portal calls
POST /api/v1/presentations/create(vc.go:316). - The API:
- Fetches the named VCs.
- Constructs a VP envelope.
- Signs the VP with your DID’s authentication key.
- Returns the VP JSON.
- The portal/wallet then submits the VP to the verifier (typically via
POST /api/v1/presentations/verifyon the verifier’s side, or a callback URL specified in the Proof Request).
API & SDK
Response (truncated):
Verify
The verifier’s portal will show “Presentation received → verifying…” and within ~1 s display the verdict. You should see a matching record in your own /presentations/history (if surfaced — currently part of §5.4 Verification History for the verifier side).
Troubleshooting
3.2.5. Checking a Credential’s Revocation Status ##### When to use
You hold a credential and want to confirm it has not been revoked. The status check is also performed automatically every time you open a credential’s detail page.
Before you begin
You have a credential ID.
Steps (manual)
(No auth needed — this endpoint is public, registered at router.go:68.)
Response:
How it works under the hood
The handler reads the bit at the credential’s statusListIndex from the RevocationRegistry contract. Bit 1 = revoked, bit 0 = active. See §4.4.3 for the bitstring encoding.