Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[US] As an Issuer, I want to issue off-chain attestations through the SDK #376

Open
alainncls opened this issue Nov 10, 2023 · 1 comment · May be fixed by #922
Open

[US] As an Issuer, I want to issue off-chain attestations through the SDK #376

alainncls opened this issue Nov 10, 2023 · 1 comment · May be fixed by #922

Comments

@alainncls
Copy link
Collaborator

alainncls commented Nov 10, 2023

As an Issuer,
I want to issue off-chain attestations through the SDK,
So that I can save on gas fees when the payload I want to attest is large


NOTE: The Offchain Schema is (bytes32 schemaId, string uri) with ID 0xa288e257097a4bed4166c002cb6911713edacc88e30b6cb2b0104df9c365327d


Currently, the SDK allows reading off-chain Attestations by fetching the off-chain payload from the uri field of the attested payload. If the payload is encoded (starting with 0x), the SDK decodes it by using the Schema declared in the schemaId field.
Now, we need to extend this functionality to support issuing off-chain Attestations via the SDK.

Acceptance Criteria:

  1. Dedicated function for issuing off-chain Attestations:
    1. The SDK will provide a dedicated function to handle off-chain attestations.
    2. This function will push the off-chain payload to its destination (initially IPFS, with later support for Ceramic, Arweave, Greenfield, etc.).
  2. Issuing an on-chain Attestation:
    1. After uploading the off-chain payload, the SDK will issue an on-chain Attestation.
    2. The uri field in the Attestation will contain the link to the off-chain payload.
    3. The schemaId field will refer to the ID of the Schema describing the off-chain payload.
  3. Schema validation: If the Schema describing the off-chain payload isn’t registered in the SchemaRegistry, an error will be thrown.
  4. Timeout handling: Implement a timeout mechanism to handle cases where pushing the off-chain payload takes too long.
  5. Issuer responsibility: The Issuer must provide all required credentials (e.g., API keys) to push the off-chain payload to the targeted service (e.g., IPFS).
  6. Initial focus on IPFS: The first implementation will focus on issuing off-chain payloads to IPFS, with support for additional services (e.g., Ceramic) in future iterations.

Technical Notes:

  • The SDK should support retry logic for uploading the off-chain payload.
  • Consider edge cases like large payloads and timeouts for various services (IPFS, Ceramic, etc.).
  • Error messages should be clear and specific when Schema validation or payload upload fails.
@alainncls alainncls converted this from a draft issue Nov 10, 2023
@alainncls alainncls added this to the MVP4 milestone Nov 10, 2023
@alainncls alainncls moved this from In progress to Ready for development in Verax Attestation Registry Nov 10, 2023
@alainncls alainncls modified the milestones: MVP4, V1.0 Jan 8, 2024
@Chirag-S-Kotian
Copy link
Contributor

Give to me

@alainncls alainncls moved this from Ready for development to Peer-review in Verax Attestation Registry Feb 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Peer-review
2 participants