Update content of files

This commit is contained in:
GitHub Action 2024-11-15 20:18:02 +00:00
parent 28e53a7c16
commit 7d90787aff
34 changed files with 343 additions and 432 deletions

View file

@ -80,7 +80,7 @@
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/starsTransactionPeerAPI">starsTransactionPeerAPI</a> - </li>
<li>Added <a href="/constructor/starsTransactionPeerAPI">starsTransactionPeerAPI</a> - Describes a <a href="/api/stars">Telegram Star</a> transaction used to pay for paid API usage, such as <a href="/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once">paid bot broadcasts</a>.</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
@ -244,9 +244,9 @@
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a> - </li>
<li>Added <a href="/method/payments.changeStarsSubscription">payments.changeStarsSubscription</a> - </li>
<li>Added <a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a> - </li>
<li>Added <a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a> - Obtain a list of active, expiring or cancelled <a href="/api/invites#paid-invite-links">Telegram Star subscriptions »</a>.</li>
<li>Added <a href="/method/payments.changeStarsSubscription">payments.changeStarsSubscription</a> - Activate or deactivate a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</li>
<li>Added <a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a> - Re-join a private channel associated to an active <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</li>
<li>Added <a href="/method/messages.sendPaidReaction">messages.sendPaidReaction</a> - </li>
<li>Added <a href="/method/messages.togglePaidReactionPrivacy">messages.togglePaidReactionPrivacy</a> - </li>
</ul>
@ -261,8 +261,8 @@
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/inputInvoiceChatInviteSubscription">inputInvoiceChatInviteSubscription</a> - </li>
<li>Added <a href="/constructor/starsSubscriptionPricing">starsSubscriptionPricing</a> - </li>
<li>Added <a href="/constructor/starsSubscription">starsSubscription</a> - </li>
<li>Added <a href="/constructor/starsSubscriptionPricing">starsSubscriptionPricing</a> - Pricing of a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</li>
<li>Added <a href="/constructor/starsSubscription">starsSubscription</a> - Represents a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</li>
<li>Added <a href="/constructor/reactionPaid">reactionPaid</a> - </li>
<li>Added <a href="/constructor/messageReactor">messageReactor</a> - </li>
<li>Added <a href="/constructor/channelAdminLogEventActionToggleSignatureProfiles">channelAdminLogEventActionToggleSignatureProfiles</a> - </li>
@ -607,7 +607,7 @@ If the returned <a href="/constructor/webViewResultUrl">webViewResultUrl</a> doe
<li>Added <a href="/constructor/starsTopupOption">starsTopupOption</a> - <a href="/api/stars">Telegram Stars topup option</a>.</li>
<li>Added <a href="/constructor/inputInvoiceStars">inputInvoiceStars</a> - Used to top up the <a href="/api/stars">Telegram Stars</a> balance of the current account or someone else's account.</li>
<li>Added <a href="/constructor/starsTransaction">starsTransaction</a> - Represents a <a href="/api/stars">Telegram Stars transaction »</a>.</li>
<li>Added <a href="/constructor/payments.starsStatus">payments.starsStatus</a> - Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star balance and transaction history »</a>.</li>
<li>Added <a href="/constructor/payments.starsStatus">payments.starsStatus</a> - Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star subscriptions, balance and transaction history »</a>.</li>
<li>Added <a href="/constructor/updateStarsBalance">updateStarsBalance</a> - The current account's <a href="/api/stars">Telegram Stars balance »</a> has changed.</li>
<li>Added <a href="/constructor/payments.paymentFormStars">payments.paymentFormStars</a> - Represents a payment form, for payments to be using <a href="/api/stars">Telegram Stars, see here »</a> for more info.</li>
<li>Added <a href="/constructor/payments.paymentReceiptStars">payments.paymentReceiptStars</a> - Receipt for <a href="/api/stars">payment made using Telegram Stars</a>.</li>

View file

@ -98,7 +98,7 @@
<p><a href="/type/BroadcastRevenueBalances">BroadcastRevenueBalances</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -87,7 +87,7 @@
<p><a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -87,7 +87,7 @@
<p><a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -112,7 +112,7 @@
<p><a href="/type/BroadcastRevenueTransaction">BroadcastRevenueTransaction</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -402,7 +402,7 @@
<h4><a class="anchor" href="#channel-and-supergroup-boosts" id="channel-and-supergroup-boosts" name="channel-and-supergroup-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel and supergroup boosts</a></h4>
<p>Telegram Premium users can grant their favorite channels and supergroups additional features like the ability to post stories by giving them boosts.</p>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p>
<h4><a class="anchor" href="#paid-media" id="paid-media" name="paid-media"><i class="anchor-icon"></i></a><a href="/api/paid-media">Paid media</a></h4>
<p>Content creators can accept Stars by publishing paid photos or videos on their channels. Subscribers will be allowed to view such posts only after paying the author to unlock them.</p>
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>payments.starsStatus</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Info about the current Telegram Star balance and transaction history ».">
<meta property="description" content="Info about the current Telegram Star subscriptions, balance and transaction history ».">
<meta property="og:title" content="payments.starsStatus">
<meta property="og:image" content="">
<meta property="og:description" content="Info about the current Telegram Star balance and transaction history ».">
<meta property="og:description" content="Info about the current Telegram Star subscriptions, balance and transaction history ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -42,7 +42,7 @@
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/payments.starsStatus" >payments.starsStatus</a></li></ul></div>
<h1 id="dev_page_title">payments.starsStatus</h1>
<div id="dev_page_content"><p>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star balance and transaction history »</a>.</p>
<div id="dev_page_content"><p>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star subscriptions, balance and transaction history »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
@ -79,17 +79,17 @@
<tr>
<td><strong>subscriptions</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StarsSubscription">StarsSubscription</a>&gt;</td>
<td> </td>
<td>Info about current Telegram Star subscriptions, only returned when invoking <a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a> and <a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a>.</td>
</tr>
<tr>
<td><strong>subscriptions_next_offset</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/string">string</a></td>
<td> </td>
<td>Offset for pagination of subscriptions: only usable with <a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a>, returned when invoking <a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a> and <a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a>.</td>
</tr>
<tr>
<td><strong>subscriptions_missing_balance</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.4?<a href="/type/long">long</a></td>
<td> </td>
<td>The number of Telegram Stars the user should buy to be able to extend subscriptions expiring soon (i.e. the current balance is not enough to extend all expiring subscriptions).</td>
</tr>
<tr>
<td><strong>history</strong></td>
@ -119,6 +119,8 @@
<h4><a class="anchor" href="#paymentsgetstarstransactions" id="paymentsgetstarstransactions" name="paymentsgetstarstransactions"><i class="anchor-icon"></i></a><a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a></h4>
<p>Fetch <a href="/api/stars#balance-and-transaction-history">Telegram Stars transactions</a>.</p>
<p>The <code>inbound</code> and <code>outbound</code> flags are mutually exclusive: if none of the two are set, both incoming and outgoing transactions are fetched.</p>
<h4><a class="anchor" href="#paymentsgetstarssubscriptions" id="paymentsgetstarssubscriptions" name="paymentsgetstarssubscriptions"><i class="anchor-icon"></i></a><a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a></h4>
<p>Obtain a list of active, expiring or cancelled <a href="/api/invites#paid-invite-links">Telegram Star subscriptions »</a>.</p>
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
<p>Telegram Stars are virtual items that allow users to purchase digital goods and services from bots and mini apps inside the Telegram ecosystem, send gifts to content creators on the Telegram platform, and more.</p></div>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>starsSubscription</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
canceled
flags.0?true
 
can_refulfill
flags.1?true…">
<meta property="description" content="Represents a Telegram Star subscription ».">
<meta property="og:title" content="starsSubscription">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
canceled
flags.0?true
 
can_refulfill
flags.1?true…">
<meta property="og:description" content="Represents a Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -64,7 +42,8 @@ flags.1?true…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/starsSubscription" >starsSubscription</a></li></ul></div>
<h1 id="dev_page_title">starsSubscription</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Represents a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -95,12 +74,12 @@ flags.1?true…">
<tr>
<td><strong>canceled</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
<td> </td>
<td>Whether this subscription was cancelled.</td>
</tr>
<tr>
<td><strong>can_refulfill</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/constructor/true">true</a></td>
<td> </td>
<td>Whether we left the associated private channel, but we can still rejoin it using <a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a> because the current subscription period hasn't expired yet.</td>
</tr>
<tr>
<td><strong>missing_balance</strong></td>
@ -110,32 +89,37 @@ flags.1?true…">
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Subscription ID.</td>
</tr>
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
<td> </td>
<td>Identifier of the associated private chat.</td>
</tr>
<tr>
<td><strong>until_date</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Expiration date of the current subscription period.</td>
</tr>
<tr>
<td><strong>pricing</strong></td>
<td style="text-align: center;"><a href="/type/StarsSubscriptionPricing">StarsSubscriptionPricing</a></td>
<td> </td>
<td>Pricing of the subscription in Telegram Stars.</td>
</tr>
<tr>
<td><strong>chat_invite_hash</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.3?<a href="/type/string">string</a></td>
<td> </td>
<td>Invitation link, used to renew the subscription.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/StarsSubscription">StarsSubscription</a></p></div>
<p><a href="/type/StarsSubscription">StarsSubscription</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#paymentsfulfillstarssubscription" id="paymentsfulfillstarssubscription" name="paymentsfulfillstarssubscription"><i class="anchor-icon"></i></a><a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a></h4>
<p>Re-join a private channel associated to an active <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>starsSubscriptionPricing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
period
int
 
amount
long
 
Type
StarsSubscriptionPricing">
<meta property="description" content="Pricing of a Telegram Star subscription ».">
<meta property="og:title" content="starsSubscriptionPricing">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
period
int
 
amount
long
 
Type
StarsSubscriptionPricing">
<meta property="og:description" content="Pricing of a Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -64,7 +42,8 @@ StarsSubscriptionPricing">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/starsSubscriptionPricing" >starsSubscriptionPricing</a></li></ul></div>
<h1 id="dev_page_title">starsSubscriptionPricing</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Pricing of a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -90,17 +69,20 @@ StarsSubscriptionPricing">
<tr>
<td><strong>period</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>The user should pay <code>amount</code> stars every <code>period</code> seconds to gain and maintain access to the channel. <br>Currently the only allowed subscription period is <code>30*24*60*60</code>, i.e. the user will be debited amount stars every month.</td>
</tr>
<tr>
<td><strong>amount</strong></td>
<td style="text-align: center;"><a href="/type/long">long</a></td>
<td> </td>
<td>Price of the subscription in Telegram Stars.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/StarsSubscriptionPricing">StarsSubscriptionPricing</a></p></div>
<p><a href="/type/StarsSubscriptionPricing">StarsSubscriptionPricing</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -187,6 +187,9 @@
<p>You can accept payments from Telegram users via Telegram Bots.</p>
<h4><a class="anchor" href="#paid-media" id="paid-media" name="paid-media"><i class="anchor-icon"></i></a><a href="/api/paid-media">Paid media</a></h4>
<p>Content creators can accept Stars by publishing paid photos or videos on their channels. Subscribers will be allowed to view such posts only after paying the author to unlock them.</p>
<h4><a class="anchor" href="#bots-faq" id="bots-faq" name="bots-faq"><i class="anchor-icon"></i></a><a href="/bots/faq">Bots FAQ</a></h4>
<h4><a class="anchor" href="#messagessendmessage" id="messagessendmessage" name="messagessendmessage"><i class="anchor-icon"></i></a><a href="/method/messages.sendMessage">messages.sendMessage</a></h4>
<p>Sends a message to a chat</p>
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
<p>Telegram Stars are virtual items that allow users to purchase digital goods and services from bots and mini apps inside the Telegram ecosystem, send gifts to content creators on the Telegram platform, and more.</p></div>

View file

@ -4,14 +4,10 @@
<meta charset="utf-8">
<title>starsTransactionPeerAPI</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Describes a Telegram Star transaction used to pay for paid API usage, such as paid bot broadcasts.
Parameters
This constructor…">
<meta property="description" content="Describes a Telegram Star transaction used to pay for paid API usage, such as paid bot broadcasts.">
<meta property="og:title" content="starsTransactionPeerAPI">
<meta property="og:image" content="">
<meta property="og:description" content="Describes a Telegram Star transaction used to pay for paid API usage, such as paid bot broadcasts.
Parameters
This constructor…">
<meta property="og:description" content="Describes a Telegram Star transaction used to pay for paid API usage, such as paid bot broadcasts.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -46,7 +42,7 @@ This constructor…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/starsTransactionPeerAPI" >starsTransactionPeerAPI</a></li></ul></div>
<h1 id="dev_page_title">starsTransactionPeerAPI</h1>
<div id="dev_page_content"><p>Describes a <a href="/api/stars">Telegram Star</a> transaction used to pay for paid API usage, such as <a href="/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once">paid bot broadcasts</a>. </p>
<div id="dev_page_content"><p>Describes a <a href="/api/stars">Telegram Star</a> transaction used to pay for paid API usage, such as <a href="/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once">paid bot broadcasts</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
@ -63,7 +59,11 @@ This constructor…">
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<p>This constructor does not require any parameters.</p>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</a></p></div>
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
<p>Telegram Stars are virtual items that allow users to purchase digital goods and services from bots and mini apps inside the Telegram ecosystem, send gifts to content creators on the Telegram platform, and more.</p>
<h4><a class="anchor" href="#bots-faq" id="bots-faq" name="bots-faq"><i class="anchor-icon"></i></a><a href="/bots/faq">Bots FAQ</a></h4></div>
</div>

View file

@ -93,7 +93,7 @@
<p><a href="/type/stats.BroadcastRevenueStats">stats.BroadcastRevenueStats</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -82,7 +82,7 @@
<p><a href="/type/stats.BroadcastRevenueTransactions">stats.BroadcastRevenueTransactions</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -77,7 +77,7 @@
<p><a href="/type/stats.BroadcastRevenueWithdrawalUrl">stats.BroadcastRevenueWithdrawalUrl</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -82,7 +82,7 @@
<p><a href="/type/Update">Update</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -324,7 +324,7 @@ To set <a href="/constructor/userFull">userFull</a>.<code>read_dates_private</co
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start pages, chatbot support, and more.</p>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p>
<h4><a class="anchor" href="#pinned-messages" id="pinned-messages" name="pinned-messages"><i class="anchor-icon"></i></a><a href="/api/pin">Pinned messages</a></h4>
<p>Telegram allows pinning multiple messages on top of a specific chat.</p>
<h4><a class="anchor" href="#folders" id="folders" name="folders"><i class="anchor-icon"></i></a><a href="/api/folders">Folders</a></h4>

View file

@ -4,36 +4,10 @@
<meta charset="utf-8">
<title>payments.changeStarsSubscription</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
peer
InputPeer
 
subscription_id
string
 
canceled…">
<meta property="description" content="Activate or deactivate a Telegram Star subscription ».">
<meta property="og:title" content="payments.changeStarsSubscription">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
peer
InputPeer
 
subscription_id
string
 
canceled…">
<meta property="og:description" content="Activate or deactivate a Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -68,7 +42,8 @@ canceled…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/payments.changeStarsSubscription" >payments.changeStarsSubscription</a></li></ul></div>
<h1 id="dev_page_title">payments.changeStarsSubscription</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Activate or deactivate a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -102,23 +77,28 @@ canceled…">
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
<td> </td>
<td>Always pass <a href="/constructor/inputPeerSelf">inputPeerSelf</a>.</td>
</tr>
<tr>
<td><strong>subscription_id</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>ID of the subscription.</td>
</tr>
<tr>
<td><strong>canceled</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/Bool">Bool</a></td>
<td> </td>
<td>Whether to cancel or reactivate the subscription.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/Bool">Bool</a></p>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3></div>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#inputpeerself" id="inputpeerself" name="inputpeerself"><i class="anchor-icon"></i></a><a href="/constructor/inputPeerSelf">inputPeerSelf</a></h4>
<p>Defines the current user.</p>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -4,34 +4,10 @@
<meta charset="utf-8">
<title>payments.fulfillStarsSubscription</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
peer
InputPeer
 
subscription_id
string
 
Result
Bool
Bots can use this method">
<meta property="description" content="Re-join a private channel associated to an active Telegram Star subscription ».">
<meta property="og:title" content="payments.fulfillStarsSubscription">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
peer
InputPeer
 
subscription_id
string
 
Result
Bool
Bots can use this method">
<meta property="og:description" content="Re-join a private channel associated to an active Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -66,7 +42,8 @@ Bots can use this method">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/payments.fulfillStarsSubscription" >payments.fulfillStarsSubscription</a></li></ul></div>
<h1 id="dev_page_title">payments.fulfillStarsSubscription</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Re-join a private channel associated to an active <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -95,18 +72,23 @@ Bots can use this method">
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
<td> </td>
<td>Always pass <a href="/constructor/inputPeerSelf">inputPeerSelf</a>.</td>
</tr>
<tr>
<td><strong>subscription_id</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>ID of the subscription.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/Bool">Bool</a></p>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3></div>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#inputpeerself" id="inputpeerself" name="inputpeerself"><i class="anchor-icon"></i></a><a href="/constructor/inputPeerSelf">inputPeerSelf</a></h4>
<p>Defines the current user.</p>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>payments.getStarsSubscriptions</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
missing_balance
flags.0?true
 
peer
InputPeer…">
<meta property="description" content="Obtain a list of active, expiring or cancelled Telegram Star subscriptions ».">
<meta property="og:title" content="payments.getStarsSubscriptions">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
missing_balance
flags.0?true
 
peer
InputPeer…">
<meta property="og:description" content="Obtain a list of active, expiring or cancelled Telegram Star subscriptions ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -64,7 +42,8 @@ InputPeer…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/payments.getStarsSubscriptions" >payments.getStarsSubscriptions</a></li></ul></div>
<h1 id="dev_page_title">payments.getStarsSubscriptions</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Obtain a list of active, expiring or cancelled <a href="/api/invites#paid-invite-links">Telegram Star subscriptions »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -97,23 +76,30 @@ InputPeer…">
<tr>
<td><strong>missing_balance</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
<td> </td>
<td>Whether to return only expiring subscriptions.</td>
</tr>
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
<td> </td>
<td>Always pass <a href="/constructor/inputPeerSelf">inputPeerSelf</a>.</td>
</tr>
<tr>
<td><strong>offset</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Offset for pagination, taken from <a href="/constructor/payments.starsStatus#subscriptions_next_offset">payments.starsStatus</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/payments.StarsStatus">payments.StarsStatus</a></p>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3></div>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#inputpeerself" id="inputpeerself" name="inputpeerself"><i class="anchor-icon"></i></a><a href="/constructor/inputPeerSelf">inputPeerSelf</a></h4>
<p>Defines the current user.</p>
<h4><a class="anchor" href="#paymentsstarsstatus" id="paymentsstarsstatus" name="paymentsstarsstatus"><i class="anchor-icon"></i></a><a href="/constructor/payments.starsStatus">payments.starsStatus</a></h4>
<p>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star subscriptions, balance and transaction history »</a>.</p>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -111,7 +111,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -108,7 +108,7 @@
<h4><a class="anchor" href="#pagination-in-the-api" id="pagination-in-the-api" name="pagination-in-the-api"><i class="anchor-icon"></i></a><a href="/api/offsets">Pagination in the API</a></h4>
<p>How to fetch results from large lists of objects.</p>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -113,7 +113,7 @@
<h4><a class="anchor" href="#two-factor-authentication" id="two-factor-authentication" name="two-factor-authentication"><i class="anchor-icon"></i></a><a href="/api/srp">Two-factor authentication</a></h4>
<p>How to login to a user's account if they have enabled 2FA, how to change password.</p>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -3698,15 +3698,15 @@ Look for updates of telegram&#39;s terms of service…">
<tbody>
<tr>
<td><a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a></td>
<td> </td>
<td>Obtain a list of active, expiring or cancelled <a href="/api/invites#paid-invite-links">Telegram Star subscriptions »</a>.</td>
</tr>
<tr>
<td><a href="/method/payments.changeStarsSubscription">payments.changeStarsSubscription</a></td>
<td> </td>
<td>Activate or deactivate a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
<tr>
<td><a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a></td>
<td> </td>
<td>Re-join a private channel associated to an active <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.sendPaidReaction">messages.sendPaidReaction</a></td>

View file

@ -53,9 +53,9 @@
<h5><a class="anchor" href="#1-client-sends-query-to-server" id="1-client-sends-query-to-server" name="1-client-sends-query-to-server"><i class="anchor-icon"></i></a>1) Client sends query to server</h5>
<!-- start req_pq_multi -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 10 85 08 00 3D 30 36 67
0010 | 14 00 00 00 F1 8E 7E BE 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 08 73 02 00 12 AA 37 67
0010 | 14 00 00 00 F1 8E 7E BE C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;</code></pre>
<table class="table">
@ -77,7 +77,7 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>108508003D303667</code></td>
<td><code>0873020012AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -95,7 +95,7 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Random number</td>
</tr>
</tbody>
@ -104,11 +104,11 @@
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
<!-- start resPQ -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 60 BD 74 3D 30 36 67
0010 | 50 00 00 00 63 24 16 05 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE 81 FF 56 11 A6 F0 7A E1
0030 | 01 5B D4 18 9E 60 68 7C 08 1F 1F C6 6E 4F BE 17
0040 | B3 00 00 00 15 C4 B5 1C 03 00 00 00 85 FD 64 DE
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 A8 30 BE 12 AA 37 67
0010 | 50 00 00 00 63 24 16 05 C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A ED 2B F6 47 79 20 E8 B6
0030 | 96 30 62 79 4A 66 FE 44 08 26 AE 58 C1 C8 74 B2
0040 | B5 00 00 00 15 C4 B5 1C 03 00 00 00 85 FD 64 DE
0050 | 85 1D 9D D0 A5 B7 F7 09 35 5F C3 0B 21 6B E8 6C
0060 | 02 2B B4 C3</code></pre>
<p>Payload (de)serialization:</p>
@ -132,7 +132,7 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>0160BD743D303667</code></td>
<td><code>01A830BE12AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>081F1FC66E4FBE17B3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2242729316540356531</td>
<td><code>0826AE58C1C874B2B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2787262808703939253</td>
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -208,22 +208,22 @@
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p &lt; q.</h5>
<!-- start pq -->
<pre><code>pq = 2242729316540356531</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2242729316540356531 = 1264011563 * 1774294937</code></p>
<pre><code>p = 1264011563
q = 1774294937</code></pre>
<pre><code>pq = 2787262808703939253</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2787262808703939253 = 1450368581 * 1921761713</code></p>
<pre><code>p = 1450368581
q = 1921761713</code></pre>
<!-- end pq -->
<h4><a class="anchor" href="#presenting-proof-of-work-server-authentication" id="presenting-proof-of-work-server-authentication" name="presenting-proof-of-work-server-authentication"><i class="anchor-icon"></i></a>Presenting proof of work; Server authentication</h4>
<h5><a class="anchor" href="#4-encrypted-data-payload-generation" id="4-encrypted-data-payload-generation" name="4-encrypted-data-payload-generation"><i class="anchor-icon"></i></a>4) <code>encrypted_data</code> payload generation</h5>
<p>First of all, generate an <code>encrypted_data</code> payload as follows:</p>
<!-- start p_q_inner_data_dc -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 95 5F F5 A9 08 1F 1F C6 6E 4F BE 17 B3 00 00 00
0010 | 04 4B 57 49 2B 00 00 00 04 69 C1 97 99 00 00 00
0020 | 54 DA A8 B2 DC EB EE E5 17 AF C9 51 30 15 70 BE
0030 | 81 FF 56 11 A6 F0 7A E1 01 5B D4 18 9E 60 68 7C
0040 | 7A 60 4C AB 45 B4 5B F0 42 7F 21 87 79 75 84 83
0050 | AE 46 51 59 68 72 7D 4B 69 3E E7 7D 4F 9E 13 E6
<pre><code>0000 | 95 5F F5 A9 08 26 AE 58 C1 C8 74 B2 B5 00 00 00
0010 | 04 56 72 DE 45 00 00 00 04 72 8B C1 B1 00 00 00
0020 | C7 C4 6E 4A 29 12 7F 79 40 49 0E 28 C9 41 A2 1A
0030 | ED 2B F6 47 79 20 E8 B6 96 30 62 79 4A 66 FE 44
0040 | 09 95 FD 0F 06 C5 FB D2 39 3D 94 EE 3A 15 FE B4
0050 | B0 0B 2D 7D 23 29 6B D7 42 2A 44 8B 00 38 35 49
0060 | 02 00 00 00</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;</code></pre>
@ -246,37 +246,37 @@ q = 1774294937</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>081F1FC66E4FBE17B3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2242729316540356531</td>
<td><code>0826AE58C1C874B2B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2787262808703939253</td>
<td>Single-byte prefix denoting length, 8-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>p</td>
<td>16, 8</td>
<td><code>044B57492B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1264011563</td>
<td><code>045672DE45000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1450368581</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>24, 8</td>
<td><code>0469C19799000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1774294937</td>
<td><code>04728BC1B1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1921761713</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>nonce</td>
<td>32, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>7A604CAB45B45BF0427F218779758483</code> <code>AE46515968727D4B693EE77D4F9E13E6</code></td>
<td><code>0995FD0F06C5FBD2393D94EE3A15FEB4</code> <code>B00B2D7D23296BD7422A448B00383549</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1774294937</code></pre>
<p>The serialization of <em>P_Q_inner_data</em> produces <strong>data</strong>, which is used to generate <strong>encrypted_data</strong> as specified in <a href="/mtproto/auth_key">step 4.1</a>.<br>
These are the inputs to the algorithm specified in <a href="/mtproto/auth_key">step 4.1</a>:</p>
<!-- start p_q_inner_data_input -->
<pre><code>data = 955FF5A9081F1FC66E4FBE17B3000000044B57492B0000000469C1979900000054DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687C7A604CAB45B45BF0427F218779758483AE46515968727D4B693EE77D4F9E13E602000000
random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CDD95574DCE2A4E86BC68648665AF75884AFB7E2224AAAF47F39AE7682FD5B53C70AB2E89B099B925ED9160F9A65DFA0EF1918F508EAE015BED1DFE8D117A3B52</code></pre>
<pre><code>data = 955FF5A90826AE58C1C874B2B5000000045672DE4500000004728BC1B1000000C7C46E4A29127F7940490E28C941A21AED2BF6477920E8B6963062794A66FE440995FD0F06C5FBD2393D94EE3A15FEB4B00B2D7D23296BD7422A448B0038354902000000
random_padding_bytes = 4B013609C832EFA29ABA8C11F24ACFC03EF29EF7EE86428D3EE6A6CD19ABB562617075ACE1625C8F7E05FFCE367DBE200AD929FE2C6E5B356AFFB908AF78FEEE6CFADAB816358CF555E408E6F661384A1D95DAA35F1B1A295BEE615F</code></pre>
<!-- end p_q_inner_data_input -->
<p>And this is the output:</p>
<!-- start p_q_inner_data_output -->
<pre><code>encrypted_data = A081BF56C2D856A0E357DA4B778979AD521AEBB49C3B3FA282937104F02DFBBA21EE8AE8DE17D9F1A223325244BD232DCA89ECBD1D87C719EA6094827BD42357D03F7797481529516EBC600213B079683EC15FEC36E01ACBFAC69907D47B6947022607D96E2841FB421F4F733CB17F36A1BFC8CEF775B759985435DB9C24F7A5CCE34439CA4A0A5DF1BF1B243DF35B85D6447FE241C2945405686B8A238BA3DA952366568E887956757DF99DA1EB2C668F1A8FB37C3D4D22A8DB2A7BDAE78D7A806D2D32B027C6EB5512FFECCCBBE7D94F4291547679FF559CAE940878EFF411361AD0C6C218ACF1D8E74A8BE6E55F8E569C36E00F14C9733BFBF88D6D377E1A</code></pre>
<pre><code>encrypted_data = 46DC148CC676BA899D8904E22D1BAC60EB4B65C9AB322DD7D492D6B1FF17D6700F7660585148141972F2C39486F10925FB2AAA7E07596C6C23081238331C49D29AC715A8F1CEF36C4DA39AAE317223A1553D4C1BE83832245B2B1918AC8EF373F6E600DBC79D10C362C2BFEAA52C8B71613DFEFDE71FAB84EC0DDFE0316A97FB933BB1F9E63225166E4517BD6462AB174C3C79B38521C31997433B256252E21B884BFF2E50CADD9B5A5F71B47195AF9A4CA71F203AD549FFC8CB9BF81D5D8696BB97F909ADB0C95500C7D032B1D53EE783E03FE8AF34CF04F99F33E49A040408082110FE3DA9F52A7B83D1ED1331CED70336C01EC78409FC456559BECDA829C2</code></pre>
<!-- end p_q_inner_data_output -->
<p>The length of the final string is 256 bytes.</p>
<h5><a class="anchor" href="#5-send-req-dh-params-query-with-generated-encrypted-data" id="5-send-req-dh-params-query-with-generated-encrypted-data" name="5-send-req-dh-params-query-with-generated-encrypted-data"><i class="anchor-icon"></i></a>5) Send req_DH_params query with generated <code>encrypted_data</code></h5>
<!-- start req_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 14 85 08 00 3D 30 36 67
0010 | 40 01 00 00 BE E4 12 D7 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE 81 FF 56 11 A6 F0 7A E1
0030 | 01 5B D4 18 9E 60 68 7C 04 4B 57 49 2B 00 00 00
0040 | 04 69 C1 97 99 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 A0 81 BF 56 C2 D8 56 A0 E3 57 DA 4B
0060 | 77 89 79 AD 52 1A EB B4 9C 3B 3F A2 82 93 71 04
0070 | F0 2D FB BA 21 EE 8A E8 DE 17 D9 F1 A2 23 32 52
0080 | 44 BD 23 2D CA 89 EC BD 1D 87 C7 19 EA 60 94 82
0090 | 7B D4 23 57 D0 3F 77 97 48 15 29 51 6E BC 60 02
00A0 | 13 B0 79 68 3E C1 5F EC 36 E0 1A CB FA C6 99 07
00B0 | D4 7B 69 47 02 26 07 D9 6E 28 41 FB 42 1F 4F 73
00C0 | 3C B1 7F 36 A1 BF C8 CE F7 75 B7 59 98 54 35 DB
00D0 | 9C 24 F7 A5 CC E3 44 39 CA 4A 0A 5D F1 BF 1B 24
00E0 | 3D F3 5B 85 D6 44 7F E2 41 C2 94 54 05 68 6B 8A
00F0 | 23 8B A3 DA 95 23 66 56 8E 88 79 56 75 7D F9 9D
0100 | A1 EB 2C 66 8F 1A 8F B3 7C 3D 4D 22 A8 DB 2A 7B
0110 | DA E7 8D 7A 80 6D 2D 32 B0 27 C6 EB 55 12 FF EC
0120 | CC BB E7 D9 4F 42 91 54 76 79 FF 55 9C AE 94 08
0130 | 78 EF F4 11 36 1A D0 C6 C2 18 AC F1 D8 E7 4A 8B
0140 | E6 E5 5F 8E 56 9C 36 E0 0F 14 C9 73 3B FB F8 8D
0150 | 6D 37 7E 1A</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 B8 81 0B 00 12 AA 37 67
0010 | 40 01 00 00 BE E4 12 D7 C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A ED 2B F6 47 79 20 E8 B6
0030 | 96 30 62 79 4A 66 FE 44 04 56 72 DE 45 00 00 00
0040 | 04 72 8B C1 B1 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 46 DC 14 8C C6 76 BA 89 9D 89 04 E2
0060 | 2D 1B AC 60 EB 4B 65 C9 AB 32 2D D7 D4 92 D6 B1
0070 | FF 17 D6 70 0F 76 60 58 51 48 14 19 72 F2 C3 94
0080 | 86 F1 09 25 FB 2A AA 7E 07 59 6C 6C 23 08 12 38
0090 | 33 1C 49 D2 9A C7 15 A8 F1 CE F3 6C 4D A3 9A AE
00A0 | 31 72 23 A1 55 3D 4C 1B E8 38 32 24 5B 2B 19 18
00B0 | AC 8E F3 73 F6 E6 00 DB C7 9D 10 C3 62 C2 BF EA
00C0 | A5 2C 8B 71 61 3D FE FD E7 1F AB 84 EC 0D DF E0
00D0 | 31 6A 97 FB 93 3B B1 F9 E6 32 25 16 6E 45 17 BD
00E0 | 64 62 AB 17 4C 3C 79 B3 85 21 C3 19 97 43 3B 25
00F0 | 62 52 E2 1B 88 4B FF 2E 50 CA DD 9B 5A 5F 71 B4
0100 | 71 95 AF 9A 4C A7 1F 20 3A D5 49 FF C8 CB 9B F8
0110 | 1D 5D 86 96 BB 97 F9 09 AD B0 C9 55 00 C7 D0 32
0120 | B1 D5 3E E7 83 E0 3F E8 AF 34 CF 04 F9 9F 33 E4
0130 | 9A 04 04 08 08 21 10 FE 3D A9 F5 2A 7B 83 D1 ED
0140 | 13 31 CE D7 03 36 C0 1E C7 84 09 FC 45 65 59 BE
0150 | CD A8 29 C2</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;</code></pre>
<table class="table">
@ -345,7 +345,7 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>148508003D303667</code></td>
<td><code>B8810B0012AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -363,25 +363,25 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>044B57492B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1264011563</td>
<td><code>045672DE45000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1450368581</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>64, 8</td>
<td><code>0469C19799000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1774294937</td>
<td><code>04728BC1B1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1921761713</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -393,7 +393,7 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE000100A081BF56C2D856A0E357DA4B</code> <code>778979AD521AEBB49C3B3FA282937104</code> <code>F02DFBBA21EE8AE8DE17D9F1A2233252</code> <code>44BD232DCA89ECBD1D87C719EA609482</code> <code>7BD42357D03F7797481529516EBC6002</code> <code>13B079683EC15FEC36E01ACBFAC69907</code> <code>D47B6947022607D96E2841FB421F4F73</code> <code>3CB17F36A1BFC8CEF775B759985435DB</code> <code>9C24F7A5CCE34439CA4A0A5DF1BF1B24</code> <code>3DF35B85D6447FE241C2945405686B8A</code> <code>238BA3DA952366568E887956757DF99D</code> <code>A1EB2C668F1A8FB37C3D4D22A8DB2A7B</code> <code>DAE78D7A806D2D32B027C6EB5512FFEC</code> <code>CCBBE7D94F4291547679FF559CAE9408</code> <code>78EFF411361AD0C6C218ACF1D8E74A8B</code> <code>E6E55F8E569C36E00F14C9733BFBF88D</code><br> <code>6D377E1A</code></td>
<td><code>FE00010046DC148CC676BA899D8904E2</code> <code>2D1BAC60EB4B65C9AB322DD7D492D6B1</code> <code>FF17D6700F7660585148141972F2C394</code> <code>86F10925FB2AAA7E07596C6C23081238</code> <code>331C49D29AC715A8F1CEF36C4DA39AAE</code> <code>317223A1553D4C1BE83832245B2B1918</code> <code>AC8EF373F6E600DBC79D10C362C2BFEA</code> <code>A52C8B71613DFEFDE71FAB84EC0DDFE0</code> <code>316A97FB933BB1F9E63225166E4517BD</code> <code>6462AB174C3C79B38521C31997433B25</code> <code>6252E21B884BFF2E50CADD9B5A5F71B4</code> <code>7195AF9A4CA71F203AD549FFC8CB9BF8</code> <code>1D5D8696BB97F909ADB0C95500C7D032</code> <code>B1D53EE783E03FE8AF34CF04F99F33E4</code> <code>9A040408082110FE3DA9F52A7B83D1ED</code> <code>1331CED70336C01EC78409FC456559BE</code><br> <code>CDA829C2</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
<!-- start server_DH_params_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 5C F2 8F 3D 30 36 67
0010 | 78 02 00 00 5C 07 E8 D0 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE 81 FF 56 11 A6 F0 7A E1
0030 | 01 5B D4 18 9E 60 68 7C FE 50 02 00 6B 76 AC D9
0040 | 99 18 16 CC 04 EA 66 07 7E 7F 79 93 E3 7C 70 B1
0050 | 39 A4 D9 B9 34 79 68 56 E5 E7 7C C3 66 12 2C A5
0060 | E7 B0 11 D1 FB 38 9F F7 96 E6 12 57 A9 6E D8 6E
0070 | 89 CD 4F 8B 96 C7 7E 0D 83 6D 4A E1 6C 36 D5 DA
0080 | E9 FD D8 22 0D E1 F6 CB E4 A4 59 EB 73 D6 AC 1E
0090 | A9 07 3A 2A EF 6E 3D 1D 01 9C DB 8E 27 1C D2 1D
00A0 | 6E 30 38 61 75 DF 53 16 71 3C EA 47 E0 CA C3 59
00B0 | 3C 9C 63 7D BF 1B D4 C3 68 F7 DC 8F 5F 0D 2E 9A
00C0 | 47 4F 5B 90 DA EB 22 91 66 61 67 0C A6 20 6C 7E
00D0 | 0B 0F 25 72 81 E1 8F EA B5 5B 94 B9 DC B8 90 8D
00E0 | 67 56 2B 76 CB 44 47 DF 8F EB 31 CE B3 85 59 AD
00F0 | 41 3D 96 48 EC BE 08 2B 87 23 99 5E 01 EF 34 3D
0100 | 8C 27 AC EE BB 7B F6 33 04 88 4A 6C 25 7F 93 24
0110 | 7A F6 C6 9E C7 F9 4D 2C 91 D0 BC 83 EC B0 9C 98
0120 | 63 04 A3 C7 5A FD 54 E7 2F 25 F6 99 3B D2 81 AC
0130 | F2 BB 2D 59 15 83 D1 58 28 BE 6C AE 28 25 0E D9
0140 | A0 0E 22 4D 1A 9F 88 9D BC 98 7E FD 45 C8 D8 C8
0150 | 44 D9 AC 18 F9 E0 E0 44 D8 9F AC 9B 80 BC 09 F3
0160 | FE F4 ED B6 EC CB EF 4C 2D 37 FF BB 05 C1 E0 8E
0170 | F1 00 1F 7F 22 A4 89 1C C5 FD 0D 10 1E AB 64 6B
0180 | F0 23 7B DB 5B 90 F8 87 67 1E 18 2B A1 2C 2A EC
0190 | 00 DC BC B4 E9 70 36 11 1D 3E 01 C0 B1 69 E9 46
01A0 | 0E 8C 3C 66 06 42 C2 9D 7C 1B 7C 1E 03 2E 2F 11
01B0 | B2 E5 0A 6C CC 28 3D 54 92 00 E9 63 55 7B 67 6F
01C0 | 42 A6 80 72 A5 5D EE DE 8D BF 08 C0 C1 09 D5 80
01D0 | B3 BD DD 34 D5 1F 81 70 38 06 9E D7 48 12 36 A3
01E0 | AD CD F9 08 B8 83 1B 32 7E CF E7 AC DA E6 D0 5C
01F0 | 6B EE CB 99 F1 15 95 CF 7C 67 B3 A4 90 52 7E B6
0200 | EF 31 DD 8A 4D 3E 8B 3B 8A 37 21 DF 6D FD 3A 93
0210 | 68 FB EF 4C F8 F0 79 AB 1D C5 D5 5F F9 41 DA 71
0220 | E8 0E EB F5 91 4B E9 9A D1 DC 0F CF D8 2D 72 64
0230 | 02 37 C7 40 03 5A 4B 6A 4D 22 95 9B BA E2 10 2C
0240 | BF 54 C9 18 9F 35 A7 02 A8 B8 3D C2 2A 26 DD 0C
0250 | C0 0F 10 84 9B 19 2B 76 1A 5B B8 BC 48 1D 81 D4
0260 | 4A 61 B7 36 D0 72 FD 80 39 FF 7D 7E EA 53 67 BB
0270 | 58 93 AD 68 5F 7B B4 73 9B 59 8D 54 E6 85 66 FD
0280 | E6 13 FC 9E 25 C9 37 EA CE 7F 8B 19</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 78 B4 D0 12 AA 37 67
0010 | 78 02 00 00 5C 07 E8 D0 C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A ED 2B F6 47 79 20 E8 B6
0030 | 96 30 62 79 4A 66 FE 44 FE 50 02 00 FB 0C A6 EE
0040 | 99 22 3E 03 49 C9 D1 58 84 27 86 A4 87 5D 51 B7
0050 | 93 5C C1 48 D9 0B F9 A4 2A FD C2 B0 E5 44 96 EF
0060 | B5 23 96 9E E6 DB 37 6D 45 0B 4C 58 85 F4 5F 5B
0070 | 25 5C 89 91 12 80 57 DF 84 99 0D E0 DC 36 3F 63
0080 | 6B C5 66 82 55 FE C3 3C B1 DA 02 01 4A 46 7C 0D
0090 | 0B CC 1B 7E 36 91 74 03 06 93 32 A4 B5 6C AD E1
00A0 | 60 91 93 B5 77 83 BA A9 27 8B 1F C6 16 27 32 07
00B0 | 10 EC 39 0C 09 39 A7 16 91 70 FF C1 FA C6 EF 15
00C0 | 2A B8 32 DA 6A 4B 49 A7 23 CA 0F 65 7A 52 D5 15
00D0 | 12 73 2A 9A 88 60 52 56 AB 9C DA 34 46 BA 06 7D
00E0 | A2 93 AD DF 0C 51 10 D3 D1 0B 5C 8E DB 55 BD FB
00F0 | A2 EB 9A 9C 52 14 41 CF 11 6B 4A 69 18 0E 28 BF
0100 | 31 3C 15 47 81 70 8A 51 96 CC 8F 34 F8 1C 6A AA
0110 | C7 0A 3D 66 65 7C 45 FF 1C C1 E8 67 F6 F7 57 80
0120 | A1 6A 3E A1 67 44 05 DA 20 32 19 2A 7C D8 9D 57
0130 | D0 DF 73 24 3A FA 2A 9E 26 D9 2D 8B 32 7A AE 28
0140 | 02 83 14 89 B9 5D 22 A0 31 CC 44 D9 68 9A F4 B6
0150 | E8 1E 36 DF 61 DB 1D CB D4 09 77 CF 7D 4E 23 42
0160 | 67 2C 75 56 4C D9 76 48 07 B7 63 91 AC 47 C1 FB
0170 | 8D 85 6A 86 30 17 D0 F7 4A 94 CC 0A BC 70 8C FD
0180 | 87 1D 41 73 C9 48 96 31 9B FE D5 E5 7B CC 7D 35
0190 | 67 C8 45 93 C2 57 A9 D9 CC 3F 5C 9B B3 18 0A 19
01A0 | 7D B1 50 3F 84 2C D4 B7 BC F3 89 47 35 C4 6C 1C
01B0 | C9 7A EE 85 CE 54 2E 64 F5 C1 CE 65 CA 0F 69 47
01C0 | 6D FB CB 1B 06 1C 26 9C AA FE 66 65 54 24 BD 0B
01D0 | 58 B7 D7 B7 A9 0C 9D 00 C1 77 7B 34 80 2F 2E E2
01E0 | A8 54 1E 71 2C D9 ED 46 A6 1D B7 FD BC 13 15 A2
01F0 | F1 CB C9 4A F2 95 74 81 C3 76 AD F0 7E 09 28 47
0200 | 26 B0 88 7E E6 3A 3A A1 A7 68 FF 35 4D 8A 37 76
0210 | AC 3B 05 73 1C 0F 47 ED 50 5F A9 D8 16 B1 A9 0F
0220 | 3A F2 71 9E 78 37 09 84 A1 53 9B 07 74 41 6D 2E
0230 | 9B 97 41 35 D0 54 73 77 6D 34 88 F0 3A 55 B2 D8
0240 | F2 E4 5B D8 A2 1E 8F 4E 85 B6 D4 C5 89 8E 28 72
0250 | 83 94 00 30 81 A5 52 09 63 20 64 8A 0B 34 7E 5F
0260 | C1 F3 C3 24 D5 56 4F CD 1C 3E 05 7B C2 18 60 35
0270 | 6A DA CB A2 C1 06 56 49 6D 36 6B 8B A8 B9 3C 7D
0280 | 9C 12 9C AC EF 33 67 58 F9 3F 08 06</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
<table class="table">
@ -464,7 +464,7 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>015CF28F3D303667</code></td>
<td><code>0178B4D012AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE5002006B76ACD9991816CC04EA6607</code> <code>7E7F7993E37C70B139A4D9B934796856</code> <code>E5E77CC366122CA5E7B011D1FB389FF7</code> <code>96E61257A96ED86E89CD4F8B96C77E0D</code> <code>836D4AE16C36D5DAE9FDD8220DE1F6CB</code> <code>E4A459EB73D6AC1EA9073A2AEF6E3D1D</code> <code>019CDB8E271CD21D6E30386175DF5316</code> <code>713CEA47E0CAC3593C9C637DBF1BD4C3</code> <code>68F7DC8F5F0D2E9A474F5B90DAEB2291</code> <code>6661670CA6206C7E0B0F257281E18FEA</code> <code>B55B94B9DCB8908D67562B76CB4447DF</code> <code>8FEB31CEB38559AD413D9648ECBE082B</code> <code>8723995E01EF343D8C27ACEEBB7BF633</code> <code>04884A6C257F93247AF6C69EC7F94D2C</code> <code>91D0BC83ECB09C986304A3C75AFD54E7</code> <code>2F25F6993BD281ACF2BB2D591583D158</code> <code>28BE6CAE28250ED9A00E224D1A9F889D</code> <code>BC987EFD45C8D8C844D9AC18F9E0E044</code> <code>D89FAC9B80BC09F3FEF4EDB6ECCBEF4C</code> <code>2D37FFBB05C1E08EF1001F7F22A4891C</code> <code>C5FD0D101EAB646BF0237BDB5B90F887</code> <code>671E182BA12C2AEC00DCBCB4E9703611</code> <code>1D3E01C0B169E9460E8C3C660642C29D</code> <code>7C1B7C1E032E2F11B2E50A6CCC283D54</code> <code>9200E963557B676F42A68072A55DEEDE</code> <code>8DBF08C0C109D580B3BDDD34D51F8170</code> <code>38069ED7481236A3ADCDF908B8831B32</code> <code>7ECFE7ACDAE6D05C6BEECB99F11595CF</code> <code>7C67B3A490527EB6EF31DD8A4D3E8B3B</code> <code>8A3721DF6DFD3A9368FBEF4CF8F079AB</code> <code>1DC5D55FF941DA71E80EEBF5914BE99A</code> <code>D1DC0FCFD82D72640237C740035A4B6A</code> <code>4D22959BBAE2102CBF54C9189F35A702</code> <code>A8B83DC22A26DD0CC00F10849B192B76</code> <code>1A5BB8BC481D81D44A61B736D072FD80</code> <code>39FF7D7EEA5367BB5893AD685F7BB473</code> <code>9B598D54E68566FDE613FC9E25C937EA</code><br> <code>CE7F8B19</code></td>
<td><code>FE500200FB0CA6EE99223E0349C9D158</code> <code>842786A4875D51B7935CC148D90BF9A4</code> <code>2AFDC2B0E54496EFB523969EE6DB376D</code> <code>450B4C5885F45F5B255C8991128057DF</code> <code>84990DE0DC363F636BC5668255FEC33C</code> <code>B1DA02014A467C0D0BCC1B7E36917403</code> <code>069332A4B56CADE1609193B57783BAA9</code> <code>278B1FC61627320710EC390C0939A716</code> <code>9170FFC1FAC6EF152AB832DA6A4B49A7</code> <code>23CA0F657A52D51512732A9A88605256</code> <code>AB9CDA3446BA067DA293ADDF0C5110D3</code> <code>D10B5C8EDB55BDFBA2EB9A9C521441CF</code> <code>116B4A69180E28BF313C154781708A51</code> <code>96CC8F34F81C6AAAC70A3D66657C45FF</code> <code>1CC1E867F6F75780A16A3EA1674405DA</code> <code>2032192A7CD89D57D0DF73243AFA2A9E</code> <code>26D92D8B327AAE2802831489B95D22A0</code> <code>31CC44D9689AF4B6E81E36DF61DB1DCB</code> <code>D40977CF7D4E2342672C75564CD97648</code> <code>07B76391AC47C1FB8D856A863017D0F7</code> <code>4A94CC0ABC708CFD871D4173C9489631</code> <code>9BFED5E57BCC7D3567C84593C257A9D9</code> <code>CC3F5C9BB3180A197DB1503F842CD4B7</code> <code>BCF3894735C46C1CC97AEE85CE542E64</code> <code>F5C1CE65CA0F69476DFBCB1B061C269C</code> <code>AAFE66655424BD0B58B7D7B7A90C9D00</code> <code>C1777B34802F2EE2A8541E712CD9ED46</code> <code>A61DB7FDBC1315A2F1CBC94AF2957481</code> <code>C376ADF07E09284726B0887EE63A3AA1</code> <code>A768FF354D8A3776AC3B05731C0F47ED</code> <code>505FA9D816B1A90F3AF2719E78370984</code> <code>A1539B0774416D2E9B974135D0547377</code> <code>6D3488F03A55B2D8F2E45BD8A21E8F4E</code> <code>85B6D4C5898E28728394003081A55209</code> <code>6320648A0B347E5FC1F3C324D5564FCD</code> <code>1C3E057BC21860356ADACBA2C1065649</code> <code>6D366B8BA8B93C7D9C129CACEF336758</code><br> <code>F93F0806</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = D503DA1E32E2EBC9631A4D993D1CED6CFB4B2A11B6455D57DD36876CD
<!-- end server_DH_params_ok -->
<p>Decrypt <code>encrypted_answer</code> using the reverse of the process specified in <a href="/mtproto/auth_key#6-server-responds-with">step 6</a>:</p>
<!-- start server_DH_inner_data_input -->
<pre><code>encrypted_answer = 6B76ACD9991816CC04EA66077E7F7993E37C70B139A4D9B934796856E5E77CC366122CA5E7B011D1FB389FF796E61257A96ED86E89CD4F8B96C77E0D836D4AE16C36D5DAE9FDD8220DE1F6CBE4A459EB73D6AC1EA9073A2AEF6E3D1D019CDB8E271CD21D6E30386175DF5316713CEA47E0CAC3593C9C637DBF1BD4C368F7DC8F5F0D2E9A474F5B90DAEB22916661670CA6206C7E0B0F257281E18FEAB55B94B9DCB8908D67562B76CB4447DF8FEB31CEB38559AD413D9648ECBE082B8723995E01EF343D8C27ACEEBB7BF63304884A6C257F93247AF6C69EC7F94D2C91D0BC83ECB09C986304A3C75AFD54E72F25F6993BD281ACF2BB2D591583D15828BE6CAE28250ED9A00E224D1A9F889DBC987EFD45C8D8C844D9AC18F9E0E044D89FAC9B80BC09F3FEF4EDB6ECCBEF4C2D37FFBB05C1E08EF1001F7F22A4891CC5FD0D101EAB646BF0237BDB5B90F887671E182BA12C2AEC00DCBCB4E97036111D3E01C0B169E9460E8C3C660642C29D7C1B7C1E032E2F11B2E50A6CCC283D549200E963557B676F42A68072A55DEEDE8DBF08C0C109D580B3BDDD34D51F817038069ED7481236A3ADCDF908B8831B327ECFE7ACDAE6D05C6BEECB99F11595CF7C67B3A490527EB6EF31DD8A4D3E8B3B8A3721DF6DFD3A9368FBEF4CF8F079AB1DC5D55FF941DA71E80EEBF5914BE99AD1DC0FCFD82D72640237C740035A4B6A4D22959BBAE2102CBF54C9189F35A702A8B83DC22A26DD0CC00F10849B192B761A5BB8BC481D81D44A61B736D072FD8039FF7D7EEA5367BB5893AD685F7BB4739B598D54E68566FDE613FC9E25C937EACE7F8B19
tmp_aes_key = 3A849EC95DD739CDF5CBB89541EF40A7AC44B6DD578FE0EEFB6F69D6A7F53B0E
tmp_aes_iv = 017E0CD56F04427115EB81053316733539313883BBCFDF9868E7952F7A604CAB</code></pre>
<pre><code>encrypted_answer = FB0CA6EE99223E0349C9D158842786A4875D51B7935CC148D90BF9A42AFDC2B0E54496EFB523969EE6DB376D450B4C5885F45F5B255C8991128057DF84990DE0DC363F636BC5668255FEC33CB1DA02014A467C0D0BCC1B7E36917403069332A4B56CADE1609193B57783BAA9278B1FC61627320710EC390C0939A7169170FFC1FAC6EF152AB832DA6A4B49A723CA0F657A52D51512732A9A88605256AB9CDA3446BA067DA293ADDF0C5110D3D10B5C8EDB55BDFBA2EB9A9C521441CF116B4A69180E28BF313C154781708A5196CC8F34F81C6AAAC70A3D66657C45FF1CC1E867F6F75780A16A3EA1674405DA2032192A7CD89D57D0DF73243AFA2A9E26D92D8B327AAE2802831489B95D22A031CC44D9689AF4B6E81E36DF61DB1DCBD40977CF7D4E2342672C75564CD9764807B76391AC47C1FB8D856A863017D0F74A94CC0ABC708CFD871D4173C94896319BFED5E57BCC7D3567C84593C257A9D9CC3F5C9BB3180A197DB1503F842CD4B7BCF3894735C46C1CC97AEE85CE542E64F5C1CE65CA0F69476DFBCB1B061C269CAAFE66655424BD0B58B7D7B7A90C9D00C1777B34802F2EE2A8541E712CD9ED46A61DB7FDBC1315A2F1CBC94AF2957481C376ADF07E09284726B0887EE63A3AA1A768FF354D8A3776AC3B05731C0F47ED505FA9D816B1A90F3AF2719E78370984A1539B0774416D2E9B974135D05473776D3488F03A55B2D8F2E45BD8A21E8F4E85B6D4C5898E28728394003081A552096320648A0B347E5FC1F3C324D5564FCD1C3E057BC21860356ADACBA2C10656496D366B8BA8B93C7D9C129CACEF336758F93F0806
tmp_aes_key = 973E7D29702C3C5E3555C007F7D6661970A178B5DAD93A5581B7110434F1D59F
tmp_aes_iv = 92318A0458D3F63CC0401134D751DC5EDA2357860F260F0A24A44BB60995FD0F</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 84109E5E4B9CB0090396548F852A37C9728ECA4BBA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001006C2129B293D09F638E9EFBBA9BE6989A9C7791E02A1B74B94ECA7B576A19550C58D97B2AB1D93FAD1F5202F70E3C3EEEF410483CCCE89EDEA24BB163CEFC39222A52A761947F6E79A93F672A934398062EAD653B2CE6FCE627DA0E1A92DD5931BD2FB9220CA95235EF0E3C9CBFA70FF5125BB278E1BA5D3EFCC6AC957C02EA5F5BFA7351C510E39CD272C93E7FF5D10AD38DF3FD54B7088CCB794175A50A604AACC4645B43DEC95C9331C9F7B27273336C31DD7D4300B908AB2CD7B6ECE287F5E6FF7F0AB9A22E1530A53A5460A9723FE50A0625261C23E69C8FB3FEF057C6B97A33111A0DAEF38F15EB5F5DCFC993BC91E43800ACFD1CB660D9E4A49A5CF36D3D303667E4FB5CDE5675AC62
answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001006C2129B293D09F638E9EFBBA9BE6989A9C7791E02A1B74B94ECA7B576A19550C58D97B2AB1D93FAD1F5202F70E3C3EEEF410483CCCE89EDEA24BB163CEFC39222A52A761947F6E79A93F672A934398062EAD653B2CE6FCE627DA0E1A92DD5931BD2FB9220CA95235EF0E3C9CBFA70FF5125BB278E1BA5D3EFCC6AC957C02EA5F5BFA7351C510E39CD272C93E7FF5D10AD38DF3FD54B7088CCB794175A50A604AACC4645B43DEC95C9331C9F7B27273336C31DD7D4300B908AB2CD7B6ECE287F5E6FF7F0AB9A22E1530A53A5460A9723FE50A0625261C23E69C8FB3FEF057C6B97A33111A0DAEF38F15EB5F5DCFC993BC91E43800ACFD1CB660D9E4A49A5CF36D3D303667E4FB5CDE5675AC62</code></pre>
<pre><code>answer_with_hash = 8EDD9BE15F64C34371176303F7667FE3DEF903D9BA0D89B5C7C46E4A29127F7940490E28C941A21AED2BF6477920E8B6963062794A66FE4403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001007C8234ABED1A1C921ADCDD0CF577096D70FFD46CFD8E899B509E77E1436B99E7D602CEFC8A138B0BDF11F9F883BB20EAEB763FC16C4A5C4C5F5B51EFF7E2E548352B489EF188686F0BDD52AF48F03839503BF0BB5064762B70018DDDCA740909E58B3A9A8BAA61E39D16B3B16CF33B84D42A05E5EE33938F6E4765B94B907218180DA0BA78E3FFB6E09E039EC4C4937D355494E4BFDEBC764DA87422F5699269F885050F9DAB18657CAFBCCEC6699C3565B77BF1462A56ABB6CE47604D1F8D05B490706D67F0B8BC8370CE32765405B6476003FFA6C55478689F98F0BA35A4C797AC6747276E5340F93C1426F75EC4CA11C730152FE24160FF8429983520F30112AA37673F9EE9A5437110F6
answer = BA0D89B5C7C46E4A29127F7940490E28C941A21AED2BF6477920E8B6963062794A66FE4403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001007C8234ABED1A1C921ADCDD0CF577096D70FFD46CFD8E899B509E77E1436B99E7D602CEFC8A138B0BDF11F9F883BB20EAEB763FC16C4A5C4C5F5B51EFF7E2E548352B489EF188686F0BDD52AF48F03839503BF0BB5064762B70018DDDCA740909E58B3A9A8BAA61E39D16B3B16CF33B84D42A05E5EE33938F6E4765B94B907218180DA0BA78E3FFB6E09E039EC4C4937D355494E4BFDEBC764DA87422F5699269F885050F9DAB18657CAFBCCEC6699C3565B77BF1462A56ABB6CE47604D1F8D05B490706D67F0B8BC8370CE32765405B6476003FFA6C55478689F98F0BA35A4C797AC6747276E5340F93C1426F75EC4CA11C730152FE24160FF8429983520F30112AA37673F9EE9A5437110F6</code></pre>
<!-- end server_DH_inner_data_output -->
<!-- start server_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | BA 0D 89 B5 54 DA A8 B2 DC EB EE E5 17 AF C9 51
0010 | 30 15 70 BE 81 FF 56 11 A6 F0 7A E1 01 5B D4 18
0020 | 9E 60 68 7C 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 C7 C4 6E 4A 29 12 7F 79 40 49 0E 28
0010 | C9 41 A2 1A ED 2B F6 47 79 20 E8 B6 96 30 62 79
0020 | 4A 66 FE 44 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@ -532,23 +532,23 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
0100 | F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6
0110 | 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE 00 01 00
0130 | 6C 21 29 B2 93 D0 9F 63 8E 9E FB BA 9B E6 98 9A
0140 | 9C 77 91 E0 2A 1B 74 B9 4E CA 7B 57 6A 19 55 0C
0150 | 58 D9 7B 2A B1 D9 3F AD 1F 52 02 F7 0E 3C 3E EE
0160 | F4 10 48 3C CC E8 9E DE A2 4B B1 63 CE FC 39 22
0170 | 2A 52 A7 61 94 7F 6E 79 A9 3F 67 2A 93 43 98 06
0180 | 2E AD 65 3B 2C E6 FC E6 27 DA 0E 1A 92 DD 59 31
0190 | BD 2F B9 22 0C A9 52 35 EF 0E 3C 9C BF A7 0F F5
01A0 | 12 5B B2 78 E1 BA 5D 3E FC C6 AC 95 7C 02 EA 5F
01B0 | 5B FA 73 51 C5 10 E3 9C D2 72 C9 3E 7F F5 D1 0A
01C0 | D3 8D F3 FD 54 B7 08 8C CB 79 41 75 A5 0A 60 4A
01D0 | AC C4 64 5B 43 DE C9 5C 93 31 C9 F7 B2 72 73 33
01E0 | 6C 31 DD 7D 43 00 B9 08 AB 2C D7 B6 EC E2 87 F5
01F0 | E6 FF 7F 0A B9 A2 2E 15 30 A5 3A 54 60 A9 72 3F
0200 | E5 0A 06 25 26 1C 23 E6 9C 8F B3 FE F0 57 C6 B9
0210 | 7A 33 11 1A 0D AE F3 8F 15 EB 5F 5D CF C9 93 BC
0220 | 91 E4 38 00 AC FD 1C B6 60 D9 E4 A4 9A 5C F3 6D
0230 | 3D 30 36 67</code></pre>
0130 | 7C 82 34 AB ED 1A 1C 92 1A DC DD 0C F5 77 09 6D
0140 | 70 FF D4 6C FD 8E 89 9B 50 9E 77 E1 43 6B 99 E7
0150 | D6 02 CE FC 8A 13 8B 0B DF 11 F9 F8 83 BB 20 EA
0160 | EB 76 3F C1 6C 4A 5C 4C 5F 5B 51 EF F7 E2 E5 48
0170 | 35 2B 48 9E F1 88 68 6F 0B DD 52 AF 48 F0 38 39
0180 | 50 3B F0 BB 50 64 76 2B 70 01 8D DD CA 74 09 09
0190 | E5 8B 3A 9A 8B AA 61 E3 9D 16 B3 B1 6C F3 3B 84
01A0 | D4 2A 05 E5 EE 33 93 8F 6E 47 65 B9 4B 90 72 18
01B0 | 18 0D A0 BA 78 E3 FF B6 E0 9E 03 9E C4 C4 93 7D
01C0 | 35 54 94 E4 BF DE BC 76 4D A8 74 22 F5 69 92 69
01D0 | F8 85 05 0F 9D AB 18 65 7C AF BC CE C6 69 9C 35
01E0 | 65 B7 7B F1 46 2A 56 AB B6 CE 47 60 4D 1F 8D 05
01F0 | B4 90 70 6D 67 F0 B8 BC 83 70 CE 32 76 54 05 B6
0200 | 47 60 03 FF A6 C5 54 78 68 9F 98 F0 BA 35 A4 C7
0210 | 97 AC 67 47 27 6E 53 40 F9 3C 14 26 F7 5E C4 CA
0220 | 11 C7 30 15 2F E2 41 60 FF 84 29 98 35 20 F3 01
0230 | 12 AA 37 67</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;</code></pre>
<table class="table">
@ -570,13 +570,13 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE0001006C2129B293D09F638E9EFBBA</code> <code>9BE6989A9C7791E02A1B74B94ECA7B57</code> <code>6A19550C58D97B2AB1D93FAD1F5202F7</code> <code>0E3C3EEEF410483CCCE89EDEA24BB163</code> <code>CEFC39222A52A761947F6E79A93F672A</code> <code>934398062EAD653B2CE6FCE627DA0E1A</code> <code>92DD5931BD2FB9220CA95235EF0E3C9C</code> <code>BFA70FF5125BB278E1BA5D3EFCC6AC95</code> <code>7C02EA5F5BFA7351C510E39CD272C93E</code> <code>7FF5D10AD38DF3FD54B7088CCB794175</code> <code>A50A604AACC4645B43DEC95C9331C9F7</code> <code>B27273336C31DD7D4300B908AB2CD7B6</code> <code>ECE287F5E6FF7F0AB9A22E1530A53A54</code> <code>60A9723FE50A0625261C23E69C8FB3FE</code> <code>F057C6B97A33111A0DAEF38F15EB5F5D</code> <code>CFC993BC91E43800ACFD1CB660D9E4A4</code><br> <code>9A5CF36D</code></td>
<td><code>FE0001007C8234ABED1A1C921ADCDD0C</code> <code>F577096D70FFD46CFD8E899B509E77E1</code> <code>436B99E7D602CEFC8A138B0BDF11F9F8</code> <code>83BB20EAEB763FC16C4A5C4C5F5B51EF</code> <code>F7E2E548352B489EF188686F0BDD52AF</code> <code>48F03839503BF0BB5064762B70018DDD</code> <code>CA740909E58B3A9A8BAA61E39D16B3B1</code> <code>6CF33B84D42A05E5EE33938F6E4765B9</code> <code>4B907218180DA0BA78E3FFB6E09E039E</code> <code>C4C4937D355494E4BFDEBC764DA87422</code> <code>F5699269F885050F9DAB18657CAFBCCE</code> <code>C6699C3565B77BF1462A56ABB6CE4760</code> <code>4D1F8D05B490706D67F0B8BC8370CE32</code> <code>765405B6476003FFA6C55478689F98F0</code> <code>BA35A4C797AC6747276E5340F93C1426</code> <code>F75EC4CA11C730152FE24160FF842998</code><br> <code>3520F301</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>3D303667</code> (1731604541 in decimal)</td>
<td><code>12AA3767</code> (1731701266 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
<h5><a class="anchor" href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" id="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" name="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message"><i class="anchor-icon"></i></a>7) Client computes random 2048-bit number <em>b</em> (using a sufficient amount of entropy) and sends the server a message</h5>
<p>First, generate a secure random 2048-bit number b:</p>
<!-- start b -->
<pre><code>b = 353D376BDE44BBA9E1BE09825CFF0863C77359727AC175F07A0E0AC76E6598573F5010DCB20C8DC317E93FA5E22804918B5F2288ED1CEADBA6E90E708CB88D62B58EF9DAAE65B19AC09E8E37CE1ACFDC78DAB097C35DA2789ECFE46A7614374EE66B3FD2564CFCA490A75BA56AE18708110C30C62AF5293D06B6D0B023168FCFE1BD1B2FA54A162B46A4BB6D2CD3E0014025C8C4255AAC034D98790F8864E01C24E4E5696731B018C98B86EACDC73EC98C8232A8E2C103D270BFF30595ECC3F268640F0BF1B427D42C284FF8BC729B574C35BA2E83FDA21C7179508E215091C62DD3F8C7934331E0444A56F9A8BFF17D05BC50E978BC8519F96258A8B0872FCF</code></pre>
<pre><code>b = 1BD51F4EF74FFD7AE5E2898C367A8DB4A4442E7A864769CD8EADC5B3F6ABA3915DDF47A562A09D53E50175CD60B3042C544BF765970929E58F7FEF65C75FA9F3F55643EA6DE76C65B87A43992EF70B497998FD92924D2E45A98298C74660304F503B89E4C258DB8444A1320DFF33F57C23708886C896A8EED669D3A394BF7CD281167A318389C2B56CC29D3050247E995CDFD8E0A49B01B6D89B6E06D1BED386FFB8D50701A80ACA9BEC313FC4F219F5C28D54B0E91259CE96C6F252A2F21282DA850216DAECBFA861DEC2FD311303637630CD910389DDC65CD9D3E051B24CCDB4C48123326C30D3FD3AF908D327F759FAEFE0F06FA61376B69DB7FDD353F4F9</code></pre>
<!-- end b -->
<p>Then compute <code>g_b = pow(g, b) mod dh_prime</code></p>
<!-- start g_b -->
<pre><code>g_b = 27553384031FA706EB6B3EE06F5C00CBC7EFD7269ABDC21FDFD94C41D1AEE347C4C95BCD509990ED3E7FAE6706D3F8A041006A5EF0A75C4F803A39958E42BC3E46CA9EFF36189277807F74C79FD381B845B25D03D18FA0216469868CB9C007A1BA388D868B9834868C179DF2A07FAA93350B5AACCBD40905265699578A341599F73A35A4A7CF22F1464143472671F929FC11D38E49E3E9D4E19CBEB323479A626121D2F7FE5B20F37D4943E50C146F80AE2189E17A7C3342249B30EA7C4F49E535FBD4F3A39660B2A663315147873F8952E6E15AC48FE1473A7FFF13A21E05244E5435665AA8569B6BF1953007E67839C5B974AFFB3589DFBCB97E84D4C1C845</code></pre>
<pre><code>g_b = C2334537E645F90117D93FB61B951353B10BC60DF2D08463B53E1DCA15623BE76555F7E4F7186F02551FAD2AF95CEA006EF90B5F235A48B444EE8D9EE0457111634D7B1505ACC93BF7D9E9AE03750033CD4A3512BFFD13193BB8A716E9B42C9D0CD254EB627C9DCD722656BA71582FF9E7D9C7727ADDD9CF9F61A6A31E7016F8D778BF7366345FE987658BF78CDB16DA174283B69DF12DC2786436D99FD919E0A35D2D8DD5827A79BF8C2E99FF4BC8DA72F3DBAB62A64D13AC1DF4DFD547BD31D963D19134F455C6A96B25056A449DDDBE29E1FB7DB68D0099F00BC113A216F43AF87D8382AA178ED65A34E7104613FE96A8A703E646AA5AD10617E680D4037B</code></pre>
<!-- end g_b -->
<h6>7.1) generation of encrypted_data</h6>
<!-- start client_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 54 B6 43 66 54 DA A8 B2 DC EB EE E5 17 AF C9 51
0010 | 30 15 70 BE 81 FF 56 11 A6 F0 7A E1 01 5B D4 18
0020 | 9E 60 68 7C 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 27 55 33 84 03 1F A7 06 EB 6B 3E E0 6F 5C 00 CB
0040 | C7 EF D7 26 9A BD C2 1F DF D9 4C 41 D1 AE E3 47
0050 | C4 C9 5B CD 50 99 90 ED 3E 7F AE 67 06 D3 F8 A0
0060 | 41 00 6A 5E F0 A7 5C 4F 80 3A 39 95 8E 42 BC 3E
0070 | 46 CA 9E FF 36 18 92 77 80 7F 74 C7 9F D3 81 B8
0080 | 45 B2 5D 03 D1 8F A0 21 64 69 86 8C B9 C0 07 A1
0090 | BA 38 8D 86 8B 98 34 86 8C 17 9D F2 A0 7F AA 93
00A0 | 35 0B 5A AC CB D4 09 05 26 56 99 57 8A 34 15 99
00B0 | F7 3A 35 A4 A7 CF 22 F1 46 41 43 47 26 71 F9 29
00C0 | FC 11 D3 8E 49 E3 E9 D4 E1 9C BE B3 23 47 9A 62
00D0 | 61 21 D2 F7 FE 5B 20 F3 7D 49 43 E5 0C 14 6F 80
00E0 | AE 21 89 E1 7A 7C 33 42 24 9B 30 EA 7C 4F 49 E5
00F0 | 35 FB D4 F3 A3 96 60 B2 A6 63 31 51 47 87 3F 89
0100 | 52 E6 E1 5A C4 8F E1 47 3A 7F FF 13 A2 1E 05 24
0110 | 4E 54 35 66 5A A8 56 9B 6B F1 95 30 07 E6 78 39
0120 | C5 B9 74 AF FB 35 89 DF BC B9 7E 84 D4 C1 C8 45</code></pre>
<pre><code>0000 | 54 B6 43 66 C7 C4 6E 4A 29 12 7F 79 40 49 0E 28
0010 | C9 41 A2 1A ED 2B F6 47 79 20 E8 B6 96 30 62 79
0020 | 4A 66 FE 44 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | C2 33 45 37 E6 45 F9 01 17 D9 3F B6 1B 95 13 53
0040 | B1 0B C6 0D F2 D0 84 63 B5 3E 1D CA 15 62 3B E7
0050 | 65 55 F7 E4 F7 18 6F 02 55 1F AD 2A F9 5C EA 00
0060 | 6E F9 0B 5F 23 5A 48 B4 44 EE 8D 9E E0 45 71 11
0070 | 63 4D 7B 15 05 AC C9 3B F7 D9 E9 AE 03 75 00 33
0080 | CD 4A 35 12 BF FD 13 19 3B B8 A7 16 E9 B4 2C 9D
0090 | 0C D2 54 EB 62 7C 9D CD 72 26 56 BA 71 58 2F F9
00A0 | E7 D9 C7 72 7A DD D9 CF 9F 61 A6 A3 1E 70 16 F8
00B0 | D7 78 BF 73 66 34 5F E9 87 65 8B F7 8C DB 16 DA
00C0 | 17 42 83 B6 9D F1 2D C2 78 64 36 D9 9F D9 19 E0
00D0 | A3 5D 2D 8D D5 82 7A 79 BF 8C 2E 99 FF 4B C8 DA
00E0 | 72 F3 DB AB 62 A6 4D 13 AC 1D F4 DF D5 47 BD 31
00F0 | D9 63 D1 91 34 F4 55 C6 A9 6B 25 05 6A 44 9D DD
0100 | BE 29 E1 FB 7D B6 8D 00 99 F0 0B C1 13 A2 16 F4
0110 | 3A F8 7D 83 82 AA 17 8E D6 5A 34 E7 10 46 13 FE
0120 | 96 A8 A7 03 E6 46 AA 5A D1 06 17 E6 80 D4 03 7B</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;</code></pre>
<table class="table">
@ -658,19 +658,19 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE00010027553384031FA706EB6B3EE0</code> <code>6F5C00CBC7EFD7269ABDC21FDFD94C41</code> <code>D1AEE347C4C95BCD509990ED3E7FAE67</code> <code>06D3F8A041006A5EF0A75C4F803A3995</code> <code>8E42BC3E46CA9EFF36189277807F74C7</code> <code>9FD381B845B25D03D18FA0216469868C</code> <code>B9C007A1BA388D868B9834868C179DF2</code> <code>A07FAA93350B5AACCBD4090526569957</code> <code>8A341599F73A35A4A7CF22F146414347</code> <code>2671F929FC11D38E49E3E9D4E19CBEB3</code> <code>23479A626121D2F7FE5B20F37D4943E5</code> <code>0C146F80AE2189E17A7C3342249B30EA</code> <code>7C4F49E535FBD4F3A39660B2A6633151</code> <code>47873F8952E6E15AC48FE1473A7FFF13</code> <code>A21E05244E5435665AA8569B6BF19530</code> <code>07E67839C5B974AFFB3589DFBCB97E84</code><br> <code>D4C1C845</code></td>
<td><code>FE000100C2334537E645F90117D93FB6</code> <code>1B951353B10BC60DF2D08463B53E1DCA</code> <code>15623BE76555F7E4F7186F02551FAD2A</code> <code>F95CEA006EF90B5F235A48B444EE8D9E</code> <code>E0457111634D7B1505ACC93BF7D9E9AE</code> <code>03750033CD4A3512BFFD13193BB8A716</code> <code>E9B42C9D0CD254EB627C9DCD722656BA</code> <code>71582FF9E7D9C7727ADDD9CF9F61A6A3</code> <code>1E7016F8D778BF7366345FE987658BF7</code> <code>8CDB16DA174283B69DF12DC2786436D9</code> <code>9FD919E0A35D2D8DD5827A79BF8C2E99</code> <code>FF4BC8DA72F3DBAB62A64D13AC1DF4DF</code> <code>D547BD31D963D19134F455C6A96B2505</code> <code>6A449DDDBE29E1FB7DB68D0099F00BC1</code> <code>13A216F43AF87D8382AA178ED65A34E7</code> <code>104613FE96A8A703E646AA5AD10617E6</code><br> <code>80D4037B</code></td>
<td>Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding</td>
</tr>
<tr>
@ -684,47 +684,47 @@ answer = BA0D89B554DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687
<!-- end client_DH_inner_data -->
<p>The serialization of <em>Client_DH_Inner_Data</em> produces a string <strong>data</strong>. This is used to generate <strong>encrypted_data</strong> as specified in <a href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message">step 6</a>, using the following inputs:</p>
<!-- start client_DH_inner_data_input -->
<pre><code>data = 54B6436654DAA8B2DCEBEEE517AFC951301570BE81FF5611A6F07AE1015BD4189E60687C0000000000000000FE00010027553384031FA706EB6B3EE06F5C00CBC7EFD7269ABDC21FDFD94C41D1AEE347C4C95BCD509990ED3E7FAE6706D3F8A041006A5EF0A75C4F803A39958E42BC3E46CA9EFF36189277807F74C79FD381B845B25D03D18FA0216469868CB9C007A1BA388D868B9834868C179DF2A07FAA93350B5AACCBD40905265699578A341599F73A35A4A7CF22F1464143472671F929FC11D38E49E3E9D4E19CBEB323479A626121D2F7FE5B20F37D4943E50C146F80AE2189E17A7C3342249B30EA7C4F49E535FBD4F3A39660B2A663315147873F8952E6E15AC48FE1473A7FFF13A21E05244E5435665AA8569B6BF1953007E67839C5B974AFFB3589DFBCB97E84D4C1C845
padding = D8C3647BA78018A7ED0F2093
tmp_aes_key = 3A849EC95DD739CDF5CBB89541EF40A7AC44B6DD578FE0EEFB6F69D6A7F53B0E
tmp_aes_iv = 017E0CD56F04427115EB81053316733539313883BBCFDF9868E7952F7A604CAB</code></pre>
<pre><code>data = 54B64366C7C46E4A29127F7940490E28C941A21AED2BF6477920E8B6963062794A66FE440000000000000000FE000100C2334537E645F90117D93FB61B951353B10BC60DF2D08463B53E1DCA15623BE76555F7E4F7186F02551FAD2AF95CEA006EF90B5F235A48B444EE8D9EE0457111634D7B1505ACC93BF7D9E9AE03750033CD4A3512BFFD13193BB8A716E9B42C9D0CD254EB627C9DCD722656BA71582FF9E7D9C7727ADDD9CF9F61A6A31E7016F8D778BF7366345FE987658BF78CDB16DA174283B69DF12DC2786436D99FD919E0A35D2D8DD5827A79BF8C2E99FF4BC8DA72F3DBAB62A64D13AC1DF4DFD547BD31D963D19134F455C6A96B25056A449DDDBE29E1FB7DB68D0099F00BC113A216F43AF87D8382AA178ED65A34E7104613FE96A8A703E646AA5AD10617E680D4037B
padding = FA4F1A72D69D8AAAEED9FFC0
tmp_aes_key = 973E7D29702C3C5E3555C007F7D6661970A178B5DAD93A5581B7110434F1D59F
tmp_aes_iv = 92318A0458D3F63CC0401134D751DC5EDA2357860F260F0A24A44BB60995FD0F</code></pre>
<!-- end client_DH_inner_data_input -->
<p>Process:</p>
<pre><code>data_with_hash := SHA1(data) + data + padding (0-15 random bytes such that total length is divisible by 16)
encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);</code></pre>
<p>Output:</p>
<!-- start client_DH_inner_data_output -->
<pre><code>encrypted_data = DBF952AAC6181513561242846EBED486A81A0A97B17E15D691DED01E0868835B193AC47460302F8DC6C69F84F1B255BF4595684AE14A6A07CAD0F4A5139893C07257F2FBF3BD06FAD327A36BCB7FB9642DD1B127FB1B84AF113BB2504914A9E6E5C13ECB25400880DC874C8A775D74F53765CE3403BEE872D5796A5593D8A932F5CF1561F7C4F1D5673D28875BC17411F95CFFAB69980F874B3D73873D716DF168615D2605564412AFAED46620120E5554F698A5CC69954CBA64FECE0AD2837556C3AD7E58B9F8A80B263754E5A46B7FE01D0208770A77243A360523DFF646692013215ED2D92F345AC00CE9CF417B01AB81473F978767DFAD007FB22F94565E80595327AAFE5B008EA0EFCDF3E005A66F201C7D3C84EE88761E9951A64677E5FF9F0CC5F4FF781827886539179BEA68510E7539D94B9DD197F4066463D455F9C9C71358BBEF520018F2B5F68196E625</code></pre>
<pre><code>encrypted_data = 402587FF53281A41BBED3F28586EAA24FD640A3E39B081384A7872DEFC52D8E58C76F8DB3D2479722D920C9617C1BD6B1528051A64D448811C138B9A0BB1CA1CDD74CBBCD3579CEB5456A5DB8B1167FF618BF4FF5E789C850D027D8A60E6DD042BEDBF55AA432563D4EA147AA54B9BA6994985DE1A890E40E688DDE6866DF4E12EF7C2B54A31D9C530C1D5E5F7F189327BCF663BECAAC68E72B07BBAB09120FB56B3C740806FE988C6CCD1158DB0AC211E3ABD86B012F22AB60DB37698E7D0EAA37379FB949584CECDBBC634FE61C5B4AC7A11479710D70F22747391ED3239F48C4803B03D51197BFC6AF20517FAF953F9FD9B4128D44D4EB5C93D19DBB80C759779AA08B1EFAA435B4D9A4594449FEA203FA77A88DF024043F14B9BBBC64360A7CAC90D5B59446F19F698BABAFC90A01372E404578781FCBBC11134F37E88F97BCA3DFFF9291EE515388B0CFB971BB2</code></pre>
<!-- end client_DH_inner_data_output -->
<p>The length of the final string is 336 bytes.</p>
<h6>7.2) set_client_DH_params query</h6>
<!-- start set_client_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 7C B0 0E 00 3D 30 36 67
0010 | 78 01 00 00 1F 5F 04 F5 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE 81 FF 56 11 A6 F0 7A E1
0030 | 01 5B D4 18 9E 60 68 7C FE 50 01 00 DB F9 52 AA
0040 | C6 18 15 13 56 12 42 84 6E BE D4 86 A8 1A 0A 97
0050 | B1 7E 15 D6 91 DE D0 1E 08 68 83 5B 19 3A C4 74
0060 | 60 30 2F 8D C6 C6 9F 84 F1 B2 55 BF 45 95 68 4A
0070 | E1 4A 6A 07 CA D0 F4 A5 13 98 93 C0 72 57 F2 FB
0080 | F3 BD 06 FA D3 27 A3 6B CB 7F B9 64 2D D1 B1 27
0090 | FB 1B 84 AF 11 3B B2 50 49 14 A9 E6 E5 C1 3E CB
00A0 | 25 40 08 80 DC 87 4C 8A 77 5D 74 F5 37 65 CE 34
00B0 | 03 BE E8 72 D5 79 6A 55 93 D8 A9 32 F5 CF 15 61
00C0 | F7 C4 F1 D5 67 3D 28 87 5B C1 74 11 F9 5C FF AB
00D0 | 69 98 0F 87 4B 3D 73 87 3D 71 6D F1 68 61 5D 26
00E0 | 05 56 44 12 AF AE D4 66 20 12 0E 55 54 F6 98 A5
00F0 | CC 69 95 4C BA 64 FE CE 0A D2 83 75 56 C3 AD 7E
0100 | 58 B9 F8 A8 0B 26 37 54 E5 A4 6B 7F E0 1D 02 08
0110 | 77 0A 77 24 3A 36 05 23 DF F6 46 69 20 13 21 5E
0120 | D2 D9 2F 34 5A C0 0C E9 CF 41 7B 01 AB 81 47 3F
0130 | 97 87 67 DF AD 00 7F B2 2F 94 56 5E 80 59 53 27
0140 | AA FE 5B 00 8E A0 EF CD F3 E0 05 A6 6F 20 1C 7D
0150 | 3C 84 EE 88 76 1E 99 51 A6 46 77 E5 FF 9F 0C C5
0160 | F4 FF 78 18 27 88 65 39 17 9B EA 68 51 0E 75 39
0170 | D9 4B 9D D1 97 F4 06 64 63 D4 55 F9 C9 C7 13 58
0180 | BB EF 52 00 18 F2 B5 F6 81 96 E6 25</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 BC 81 0B 00 12 AA 37 67
0010 | 78 01 00 00 1F 5F 04 F5 C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A ED 2B F6 47 79 20 E8 B6
0030 | 96 30 62 79 4A 66 FE 44 FE 50 01 00 40 25 87 FF
0040 | 53 28 1A 41 BB ED 3F 28 58 6E AA 24 FD 64 0A 3E
0050 | 39 B0 81 38 4A 78 72 DE FC 52 D8 E5 8C 76 F8 DB
0060 | 3D 24 79 72 2D 92 0C 96 17 C1 BD 6B 15 28 05 1A
0070 | 64 D4 48 81 1C 13 8B 9A 0B B1 CA 1C DD 74 CB BC
0080 | D3 57 9C EB 54 56 A5 DB 8B 11 67 FF 61 8B F4 FF
0090 | 5E 78 9C 85 0D 02 7D 8A 60 E6 DD 04 2B ED BF 55
00A0 | AA 43 25 63 D4 EA 14 7A A5 4B 9B A6 99 49 85 DE
00B0 | 1A 89 0E 40 E6 88 DD E6 86 6D F4 E1 2E F7 C2 B5
00C0 | 4A 31 D9 C5 30 C1 D5 E5 F7 F1 89 32 7B CF 66 3B
00D0 | EC AA C6 8E 72 B0 7B BA B0 91 20 FB 56 B3 C7 40
00E0 | 80 6F E9 88 C6 CC D1 15 8D B0 AC 21 1E 3A BD 86
00F0 | B0 12 F2 2A B6 0D B3 76 98 E7 D0 EA A3 73 79 FB
0100 | 94 95 84 CE CD BB C6 34 FE 61 C5 B4 AC 7A 11 47
0110 | 97 10 D7 0F 22 74 73 91 ED 32 39 F4 8C 48 03 B0
0120 | 3D 51 19 7B FC 6A F2 05 17 FA F9 53 F9 FD 9B 41
0130 | 28 D4 4D 4E B5 C9 3D 19 DB B8 0C 75 97 79 AA 08
0140 | B1 EF AA 43 5B 4D 9A 45 94 44 9F EA 20 3F A7 7A
0150 | 88 DF 02 40 43 F1 4B 9B BB C6 43 60 A7 CA C9 0D
0160 | 5B 59 44 6F 19 F6 98 BA BA FC 90 A0 13 72 E4 04
0170 | 57 87 81 FC BB C1 11 34 F3 7E 88 F9 7B CA 3D FF
0180 | F9 29 1E E5 15 38 8B 0C FB 97 1B B2</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>7CB00E003D303667</code></td>
<td><code>BC810B0012AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100DBF952AAC618151356124284</code> <code>6EBED486A81A0A97B17E15D691DED01E</code> <code>0868835B193AC47460302F8DC6C69F84</code> <code>F1B255BF4595684AE14A6A07CAD0F4A5</code> <code>139893C07257F2FBF3BD06FAD327A36B</code> <code>CB7FB9642DD1B127FB1B84AF113BB250</code> <code>4914A9E6E5C13ECB25400880DC874C8A</code> <code>775D74F53765CE3403BEE872D5796A55</code> <code>93D8A932F5CF1561F7C4F1D5673D2887</code> <code>5BC17411F95CFFAB69980F874B3D7387</code> <code>3D716DF168615D2605564412AFAED466</code> <code>20120E5554F698A5CC69954CBA64FECE</code> <code>0AD2837556C3AD7E58B9F8A80B263754</code> <code>E5A46B7FE01D0208770A77243A360523</code> <code>DFF646692013215ED2D92F345AC00CE9</code> <code>CF417B01AB81473F978767DFAD007FB2</code> <code>2F94565E80595327AAFE5B008EA0EFCD</code> <code>F3E005A66F201C7D3C84EE88761E9951</code> <code>A64677E5FF9F0CC5F4FF781827886539</code> <code>179BEA68510E7539D94B9DD197F40664</code> <code>63D455F9C9C71358BBEF520018F2B5F6</code><br> <code>8196E625</code></td>
<td><code>FE500100402587FF53281A41BBED3F28</code> <code>586EAA24FD640A3E39B081384A7872DE</code> <code>FC52D8E58C76F8DB3D2479722D920C96</code> <code>17C1BD6B1528051A64D448811C138B9A</code> <code>0BB1CA1CDD74CBBCD3579CEB5456A5DB</code> <code>8B1167FF618BF4FF5E789C850D027D8A</code> <code>60E6DD042BEDBF55AA432563D4EA147A</code> <code>A54B9BA6994985DE1A890E40E688DDE6</code> <code>866DF4E12EF7C2B54A31D9C530C1D5E5</code> <code>F7F189327BCF663BECAAC68E72B07BBA</code> <code>B09120FB56B3C740806FE988C6CCD115</code> <code>8DB0AC211E3ABD86B012F22AB60DB376</code> <code>98E7D0EAA37379FB949584CECDBBC634</code> <code>FE61C5B4AC7A11479710D70F22747391</code> <code>ED3239F48C4803B03D51197BFC6AF205</code> <code>17FAF953F9FD9B4128D44D4EB5C93D19</code> <code>DBB80C759779AA08B1EFAA435B4D9A45</code> <code>94449FEA203FA77A88DF024043F14B9B</code> <code>BBC64360A7CAC90D5B59446F19F698BA</code> <code>BAFC90A01372E404578781FCBBC11134</code> <code>F37E88F97BCA3DFFF9291EE515388B0C</code><br> <code>FB971BB2</code></td>
<td>Encrypted client_DH_inner_data generated previously, serialized as a TL byte string</td>
</tr>
</tbody>
@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<h5><a class="anchor" href="#8-auth-key-generation" id="8-auth-key-generation" name="8-auth-key-generation"><i class="anchor-icon"></i></a>8) Auth key generation</h5>
<p>The client computes the auth_key using formula <code>g_a^b mod dh_prime</code>:</p>
<!-- start auth_key -->
<pre><code>auth_key = 27614781C5EFCF2E7327FBEB32D97ED420F5E58E134ED9A3D62239DE8034788D62168C8E5EC1E53BA0711D21DE91F4524E846040B056894D4C586E70E7EFEDCAAC4E49A3C941AA9200C170B7FE8C6F4DA6047222DA49ABD3CCD387EAAC2BE96457F1B14CA4CC28CF9A406927B3525B031DB0629152FA55AED310C00247F57F391A0C37B93CBB25369ACBC5D27D8A4B7A883FB57E9265C89C7E34654CCF02EADDC3BE08ACE3A85247487DBFA6BD66458D1D4301BB76B80529B3BB9E8D28458AAF3A4CB1DABC0135600F0430407CD3918E6821E00C641E298C5C413C9EB8FCD5996314887D185114C75648F752A6E20011075939F7F440FF9664049FEF7F615BBB</code></pre>
<pre><code>auth_key = A04829E380011C4B01B56A89E011574CEBF8CFF6A9BC3BFE092FE7352719449516BB5AB780DA596A1209D6C282BD84A88FDAEE91729D7F656D495E0A945A19E03E7FF7CB39EB1CF87872D4E3FA1C8A01B485AE714E9FEFFD42DCA0C1AF94544DD7B5940C072F56B5858AD350E1C7E71A6AB17E256F64815E9FE2695826A36B1DF7DF1B675DD52174528A68A243EA0FBB7541C30BAAF67DB4B696CD7FE623E21B73B9A0B3107302E55CFBCC1C25E86E5CA02EC61D8250FB4A22EE352FA4BFF32A33BAFBA8E2DAD8F2EE2FD65E4DD7952A7A2B0A9E4B50601FCD54B7401459E0A1490DEB3160E948F29EC34ABF47010B4936E07F41FC5C3879C81B42D19FF63850</code></pre>
<!-- end auth_key -->
<h5><a class="anchor" href="#9-final-server-reply" id="9-final-server-reply" name="9-final-server-reply"><i class="anchor-icon"></i></a>9) Final server reply</h5>
<p>The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:</p>
<!-- start dh_gen_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 C0 41 9C 3F 30 36 67
0010 | 34 00 00 00 34 F7 CB 3B 54 DA A8 B2 DC EB EE E5
0020 | 17 AF C9 51 30 15 70 BE 81 FF 56 11 A6 F0 7A E1
0030 | 01 5B D4 18 9E 60 68 7C 18 B5 6C D1 0D DD B2 0E
0040 | 0A 75 E9 74 75 80 7D AC</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 D0 41 ED 13 AA 37 67
0010 | 34 00 00 00 34 F7 CB 3B C7 C4 6E 4A 29 12 7F 79
0020 | 40 49 0E 28 C9 41 A2 1A ED 2B F6 47 79 20 E8 B6
0030 | 96 30 62 79 4A 66 FE 44 84 37 DE E3 61 E2 E2 1E
0040 | C7 1B 7D 68 E5 3B FB 81</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -817,7 +817,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01C0419C3F303667</code></td>
<td><code>01D041ED13AA3767</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>54DAA8B2DCEBEEE517AFC951301570BE</code></td>
<td><code>C7C46E4A29127F7940490E28C941A21A</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>81FF5611A6F07AE1015BD4189E60687C</code></td>
<td><code>ED2BF6477920E8B6963062794A66FE44</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>18B56CD10DDDB20E0A75E97475807DAC</code></td>
<td><code>8437DEE361E2E21EC71B7D68E53BFB81</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>

View file

@ -981,11 +981,11 @@
</tr>
<tr>
<td><a href="/method/payments.changeStarsSubscription">payments.changeStarsSubscription</a></td>
<td> </td>
<td>Activate or deactivate a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
<tr>
<td><a href="/method/payments.fulfillStarsSubscription">payments.fulfillStarsSubscription</a></td>
<td> </td>
<td>Re-join a private channel associated to an active <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.togglePaidReactionPrivacy">messages.togglePaidReactionPrivacy</a></td>

View file

@ -73,7 +73,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -83,7 +83,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -4,18 +4,10 @@
<meta charset="utf-8">
<title>StarsSubscription</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
starsSubscription
 ">
<meta property="description" content="Represents a Telegram Star subscription ».">
<meta property="og:title" content="StarsSubscription">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
starsSubscription
 ">
<meta property="og:description" content="Represents a Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -50,7 +42,8 @@ starsSubscription
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/StarsSubscription" >StarsSubscription</a></li></ul></div>
<h1 id="dev_page_title">StarsSubscription</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Represents a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -74,10 +67,13 @@ starsSubscription
<tbody>
<tr>
<td><a href="/constructor/starsSubscription">starsSubscription</a></td>
<td> </td>
<td>Represents a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
</tbody>
</table></div>
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -4,18 +4,10 @@
<meta charset="utf-8">
<title>StarsSubscriptionPricing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
starsSubscriptionPricing
 ">
<meta property="description" content="Pricing of a Telegram Star subscription ».">
<meta property="og:title" content="StarsSubscriptionPricing">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
starsSubscriptionPricing
 ">
<meta property="og:description" content="Pricing of a Telegram Star subscription ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -50,7 +42,8 @@ starsSubscriptionPricing
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/StarsSubscriptionPricing" >StarsSubscriptionPricing</a></li></ul></div>
<h1 id="dev_page_title">StarsSubscriptionPricing</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Pricing of a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 192 <b class="caret"></b></a>
@ -74,10 +67,13 @@ starsSubscriptionPricing
<tbody>
<tr>
<td><a href="/constructor/starsSubscriptionPricing">starsSubscriptionPricing</a></td>
<td> </td>
<td>Pricing of a <a href="/api/invites#paid-invite-links">Telegram Star subscription »</a>.</td>
</tr>
</tbody>
</table></div>
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#invites" id="invites" name="invites"><i class="anchor-icon"></i></a><a href="/api/invites">Invites</a></h4>
<p>Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.</p></div>
</div>

View file

@ -102,7 +102,7 @@
</tr>
<tr>
<td><a href="/constructor/starsTransactionPeerAPI">starsTransactionPeerAPI</a></td>
<td> </td>
<td>Describes a <a href="/api/stars">Telegram Star</a> transaction used to pay for paid API usage, such as <a href="/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once">paid bot broadcasts</a>.</td>
</tr>
</tbody>
</table>

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>payments.StarsStatus</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Info about the current Telegram Star balance and transaction history ».">
<meta property="description" content="Info about the current Telegram Star subscriptions, balance and transaction history ».">
<meta property="og:title" content="payments.StarsStatus">
<meta property="og:image" content="">
<meta property="og:description" content="Info about the current Telegram Star balance and transaction history ».">
<meta property="og:description" content="Info about the current Telegram Star subscriptions, balance and transaction history ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -42,7 +42,7 @@
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/payments.StarsStatus" >payments.StarsStatus</a></li></ul></div>
<h1 id="dev_page_title">payments.StarsStatus</h1>
<div id="dev_page_content"><p>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star balance and transaction history »</a>.</p>
<div id="dev_page_content"><p>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star subscriptions, balance and transaction history »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
@ -74,7 +74,7 @@
<tbody>
<tr>
<td><a href="/constructor/payments.starsStatus">payments.starsStatus</a></td>
<td>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star balance and transaction history »</a>.</td>
<td>Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star subscriptions, balance and transaction history »</a>.</td>
</tr>
</tbody>
</table>
@ -101,7 +101,7 @@
</tr>
<tr>
<td><a href="/method/payments.getStarsSubscriptions">payments.getStarsSubscriptions</a></td>
<td> </td>
<td>Obtain a list of active, expiring or cancelled <a href="/api/invites#paid-invite-links">Telegram Star subscriptions »</a>.</td>
</tr>
</tbody>
</table>

View file

@ -92,7 +92,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -92,7 +92,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>

View file

@ -92,7 +92,7 @@
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h4>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel owners can now receive 50% of the revenue from ads displayed in their channels. This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats.</p></div>
<p>Telegram has one of the most generous reward systems in the history of social media. Telegram channel and bot owners can now receive 50% of the revenue from ads displayed in their channels and bots. This page describes the methods used to withdraw channel/bot ad revenue, as well as view detailed revenue stats.</p></div>
</div>