Get desktop application:
View/edit binary Protocol Buffers messages
Provides methods for working with profiles and profile-related data.
Returns anonymous credentials that may be presented with avatar operations in ProfilesAnonymous Note: `Accounts.SetZkCredentialKey` is a pre-requisite for this RPC
the client must call Accounts.SetZkCredentialKey to call this method
Retrieves profile data. Callers with an unidentified access key for the account should use the version of this method in `ProfileAnonymous` instead.
The full profile data. The current profile did not match the provided etag (or no etag was provided).
The current profile matched the provided etag. If present, this will always be true.
Will be present if there is no v2 Profile data for this version. Because this is a temporary field during the migration, it has the highest field number without serialization overhead. This is purely aesthetic.
Sets profile data and, if needed, returns credentials used by clients to upload a v1 avatar.
The profile version. Required.
The ciphertext of a serialized Profile protobuf. Required. 937 max length = 909 plaintext serialization + 28 bytes encryption overhead
The SHA-256 hash of the Profile ciphertext being replaced. This is used an optimistic lock against concurrent changes. Optional, if this is the initial request to create a version.
The current profile version being updated. This is used as an optimistic lock against concurrent changes. Optional, if there is no current profile version for the account.
The ciphertext of the MobileCoin wallet ID on the profile.
A list of badge IDs associated with the profile.
The profile key commitment. Used to issue a profile key credential response. Required during the v1 -> v2 migration period. Afterwards will be optional, if this is an update to an existing version.
An embedded v1 request. Required during the v1 -> v2 migration period. Because this is a temporary field during the migration, it has the highest field number without serialization overhead. This is purely aesthetic.
The current data hash did not match the request's expectation, indicating another device on the account may have written an update the caller does not know about.
Payments are not permitted in the account's region, based on its phone number or the caller's IP address if the account does not have a phone number. The request should be retried without `payment_address.
The current version did not match the request's expectation, indicating another device on the account may have created a new version the caller does not know about.
Because this is a temporary field during the migration, it has the highest field number without serialization overhead. This is purely aesthetic.
Provides methods for working with profiles and profile-related data using "unidentified access" credentials. Callers must not submit any self-identifying credentials when calling methods in this service and must instead present the targeted account's unidentified access key as an anonymous authentication mechanism. Callers without an unidentified access key should use the equivalent, authenticated methods in `Profile` instead.
Deletes the avatar currently associated with the request’s avatar auth credential. Clients must also call SetProfile to remove the avatar from the encrypted `data`.
Extends the TTL of the avatar currently associated with the request’s avatar auth credential
The avatar that was extended. May be used as a check against state de-synchronization.
the identity does not have an active avatar
Returns credentials to upload a v2 avatar. After uploading the avatar, the client must call SetProfile with the new avatar URL in the encrypted `data`. Because avatars are uploaded anonymously, they have an expiration equal to the idle account expiration. Clients must periodically (recommended: every 90 days) call ExtendAvatarTTL to extend the TTl. Note: any existing avatar associated with these credentials will be deleted immediately
The length of the attachment for the requested upload form. Uploads performed with this form will be limited to the provided length.
Retrieves a profile key credential.
Contains the data necessary to request an expiring profile key credential.
The unidentified access key for the targeted account.
Retrieves profile data.
Contains the data necessary to request a profile.
The unidentified access key for the targeted account.
A group send endorsement token for the targeted account.
The full profile data. The current profile did not match the provided etag (or no etag was provided).
The current profile matched the provided etag. If present, this will always be true.
Will be present if there is no v2 Profile data for this version. Because this is a temporary field during the migration, it has the highest field number without serialization overhead. This is purely aesthetic.
Used in: ,
The account identity key of the targeted account.
A checksum of the unidentified access key for the targeted account.
Whether the account has enabled sealed sender from anyone.
A list of the badges ids associated with the account. Metadata to display badges may be obtained by cross-referencing badge ids with RemoteConfiguration.GetBadges.
Used in:
Used in:
The ACI of the account for which to get a profile key credential.
A zkgroup request for a profile key credential.
The type of credential being requested.
The profile version for which to generate a profile key credential.
Used in:
A zkgroup credential used by a client to prove that it has the profile key of a targeted account.
Used as request type in: Profile.GetProfile
Used as field type in:
The ACI of the account for which to get profile data.
The profile version to retrieve.
The `etag` from the previous request for this Profile version. If unchanged, the response will omit `profile` and `etag_matched` will be `true`.
Used in: ,
The ciphertext of the name on the profile.
The ciphertext of the description on the profile.
The ciphertext of the emoji on the profile.
The cdn0 path of the avatar on the profile.
The ciphertext of the phone-number sharing setting on the profile.
The ciphertext of the MobileCoin wallet ID on the profile.
Information about the targeted account
Indicates that the account is not permitted to set a payment address, due to a disallowed country prefix on the account's phone number.
Used in:
(message has no fields)
Used in: ,
The ciphertext of the requested version of the profile
The ciphertext of the MobileCoin wallet ID on the profile.
Information about the targeted account
An entity tag for the profile. This may be used in subsequent requests for this profile version to optimize bandwidth. Note that this hash will not match the expected_data_hash used on SetProfile for concurrency control. Clients may validate that the value has been correctly calculated by calculating a 10-byte truncated TupleHash256 as follows: ``` TupleHash256(S = "ProfileETag/v1", L = 80 bits, tuple = [ data, payment_address, account_info.identity_key, account_info.unidentified_access_key_fingerprint, account_info.unrestricted_unidentified_access ? 0x01 : 0x00, uint32BE(count(account_info.badge_ids)), utf8(id) for each id in sortLexAscendingByUtf8Bytes(account_info.badge_ids), ]) ``` Absent/empty fields contribute an empty element (not zero bytes omitted): a missing payment_address is still a present, zero-length tuple element. This etag will always exclusively cover the documented fields. If fields are added in the future, a new etag field must be introduced.
Indicates that the account does not have the Profiles v2 capability, which is required to call Profiles.SetProfile
Used in:
(message has no fields)
Used in:
If the request included a v1 avatar change, this field contains the policy and credential used by clients to upload an avatar to the CDN. Because this is a temporary field during the migration, it has the highest field number without serialization overhead. This is purely aesthetic.
Used in:
The ciphertext of a name that users must set on the profile.
An enum to indicate what change, if any, is made to the avatar with this request.
The ciphertext of an emoji that users can set on their profile.
The ciphertext of a description that users can set on their profile.
The ciphertext of the phone-number sharing setting on the profile. 29-byte encrypted boolean.
Used in: