Interface UpdateAttestationPayload

interface UpdateAttestationPayload {
    anchorsToAdd?: {
        message?: string;
        txHash?: string;
    }[];
    attestationId?: string;
    dataIntegrityProof?: {
        derivedProof?: boolean;
        publicKey?: string;
        signature: string;
        signer: string;
    };
    description?: string;
    holdersToSet?: {
        bitbadgesAddress: string;
        delete?: boolean;
    }[];
    image?: string;
    inviteCode?: string;
    messageFormat?: "plaintext" | "json";
    messages?: string[];
    name?: string;
    originalProvider?: string;
    proofOfIssuance?: {
        message: string;
        publicKey?: string;
        signature: string;
        signer: string;
    };
    publicVisibility?: boolean;
    rotateInviteCode?: boolean;
    scheme?: string;
}

Properties

anchorsToAdd?: {
    message?: string;
    txHash?: string;
}[]

Blockchain anchors to add to the attestation. These are on-chain transactions that can be used to prove stuff about the attestation, like existence at a certain point in time or to maintain data integrity.

attestationId?: string

The attestation ID. If you are the owner, you can simply use the attestationId to update the attestation. One of inviteCode or attestationId must be provided.

dataIntegrityProof?: {
    derivedProof?: boolean;
    publicKey?: string;
    signature: string;
    signer: string;
}

This is the signature and accompanying details of the messages. The siganture maintains the integrity of the messages.

This should match the expected scheme. For example, if the scheme is BBS+, the signature should be a BBS+ signature and signer should be a BBS+ public key.

description?: string

Metadata for the attestation for display purposes. Note this should not contain anything sensitive. It may be displayed to verifiers.

holdersToSet?: {
    bitbadgesAddress: string;
    delete?: boolean;
}[]

Holders can use the attestation to prove something about themselves. This is a list of holders that have added this attestation to their profile.

image?: string

Metadata for the attestation for display purposes. Note this should not contain anything sensitive. It may be displayed to verifiers.

inviteCode?: string

The key to add oneself as a holder to the attestation. This is given to the holder themselves. One of inviteCode or attestationId must be provided.

messageFormat?: "plaintext" | "json"

The message format of the messages.

messages?: string[]

Thesse are the attestations that are signed. For BBS+ signatures, there can be >1 messages, and the signer can selectively disclose the attestations. For standard signatures, there is only 1 attestationMessage.

name?: string

Metadata for the attestation for display purposes. Note this should not contain anything sensitive. It may be displayed to verifiers.

originalProvider?: string

The original provider of the attestation. Used for third-party attestation providers.

proofOfIssuance?: {
    message: string;
    publicKey?: string;
    signature: string;
    signer: string;
}

Proof of issuance is used for BBS+ signatures (scheme = bbs) only. BBS+ signatures are signed with a BBS+ key pair, but you would often want the issuer to be a native address. The prooofOfIssuance establishes a link saying that "I am the issuer of this attestation signed with BBS+ key pair ___".

Fields can be left blank for standard signatures.

publicVisibility?: boolean

Whether or not the attestation is displayable on the user's profile. if true, the attestation can be queried by anyone with the ID.

rotateInviteCode?: boolean

Whether or not to rotate the invite code.

scheme?: string

The scheme of the attestation. BBS+ signatures are supported and can be used where selective disclosure is a requirement. Otherwise, you can simply use your native blockchain's signature scheme.