Is there a maximum size to a credential?

While there is no overall maximum size limitation placed on a credential by IBM Verify Credentials, the underlying Indy library or the W3C Verifiable Credentials specification which is at the core of the Indy credential, there are practical limitations. For example, different wallet implementations may store credentials in a way that imposes limitations. IBM Verify Credentials currently places a 1GB limit on each attribute in a credential due to the wallet implementation that we use. There are also network traffic, cloud resource and local device storage considerations for issuers to take into account when designing the credentials that they issue. The credential consumers will certainly appreciate it.

How can I make use of the query filter on a REST API?

REST APIs with FILTER query parameters (as defined in our agency Swagger docs) like GET /api/v1/credentials or GET /api/v1/agents can be passed a filter string. This string must conform to Wallet Query Language (WQL) and be URL encoded. Passing this parameter will allow you to build more complex queries which will return more focused results.

As an example, if I am a verifier and I want to look for all of the issuers in the overall agency who publish credentials based on a specific schema, I could use the filter:

{ "": "Transcript", "schema.version": "1.0" }

Remember to URL encode the filter before passing into the REST API.

curl -u $ISSUERR1 "$URL/api/v1/credential_definitions?all=true&"

This will return all of the credential definitions associated with the schemas with the given name and version number. And each credential definition contains the owner_did field, which is the DID of the issuer which published that credential definition.

Properties in the filter, in the above case and schema.version are combined with an AND by default, so both rules must be satisfied for the search to return it in the response. See the WQL documentation for more complex filter possiblities.