protocol := verify Jump to Content
Guides
JUMP TO CTRL-/ Authentication About Zerion API Built for web3 developers Supported Blockchains Featured Partners Status page REST API Endpoints and Schema Details Error Codes
wallets Get wallet's balance chart get Get wallet's portfolio get Get list of wallet's fungible positions get Get list of wallet's transactions get Get a list of a wallet's NFT positions get Get a list of NFT collections held by a wallet get Get wallet's NFT portfolio get
fungibles Get list of fungible assets get Get fungible asset by ID get Get a chart for a fungible asset get
chains Get list of all chains get Get chain by ID get
swap Get fungibles available for bridge. get Get available swap offers get
gas Get list of all available gas prices get
nfts Get list of NFTs get Get single NFT by ID get Getting Help Support & Feedback Zerion Brand Assets Zerion Wallet Login
Zerion Wallet – Mobile Dapp developers Logo to display on Connect Wallet screen Detecting if Zerion mobile app is installed on the device Initiate a connection from Dapp to Zerion Wallet
Zerion Wallet – Browser Extension & Dapp Browser Detecting Zerion Logo to display on Connect Wallet screen Supported RPC methods User State Connecting to Zerion Choosing a Convenience Library Wallet Libraries that Zerion integrates with Powered by Built for web3 developers This page will help you get the most out of Zerion API. You'll be up and running in a jiffy!
You're on your way to building an awesome web3 platform with Zerion's API, Welcome!
Discover all the remarkable features of Zerion’s infrastructure so that you can build feature-rich real-time web3 apps, wallets, and protocols with ease — whether you’re publicly scaling your existing crypto product, building a new one over a weekend hackathon, or anything in between.
See what other Zers including Rainbow Wallet & StakeDAO have built in our Featured Partners Section, chat with developers in our Community chat, and dive deeper into our documentation below to learn more. Let's jump right in! 👇
📝 What is Zerion? We've built an interface is your smart, social wallet for Web3. Start from scratch, import your existing wallets, and manage your crypto portfolio from one place – including DeFi positions, NFTs, bridging across 10+ chains, swaps, and more. Available on all devices.
We're happy to share the tools that made Zerion possible. Zerion offers a comprehensive REST API that lets you build functional web3 apps that fetch information for EVM-compatible and Solana wallet addresses, protocols, and tokens. You can integrate all of DeFi into your application, without the need to run your own infrastructure. You serve your users and we will take care of the infrastructure! A win-win 🎉
🚀 Why use the Zerion API? Indexing web3 wallet and asset data is hard, REALLY HARD! We help you query and build production-ready web3 infrastructure using the Zerion API
⛽ Scalable & Reliable
The Zerion API is designed to handle enterprise-level data and traffic, making it perfect for production-ready code deployment across multiple chains. We understand the importance of uptime and data integrity, that's why our API is built with high-availability systems in place to ensure that your data is always accessible when you need it.
🔐 Secure
Security is our top priority and we take great care to ensure that our API is protected against potential security threats. Our infrastructure is regularly audited by industry-leading providers.
💎 Multi-chain support
With Zerion API you can interact with multiple blockchain networks like Ethereum, Binance Smart Chain, and Polygon, making it easy to deploy your code on multiple chains and reach a wider audience. See the full list here
🌏 Real time data
Unlike several other web3 data solutions, Zerion's API is real-time, providing instant access to wallet and on-chain data. This feature is crucial to ensure your users are shown accurate and up-to-date information.
🎯 Easy to use
Our API is designed to be intuitive and easy to use, even for developers who are new to blockchain development. Our documentation makes it easy to get started and our developers are always available to help in our Discord.
🛰️ Flexibility
Zerion API can be integrated with any project, providing a flexible solution that can adapt to the unique needs of your business. We're continuously adding new endpoints to enrich your data needs even further!
🔖 Analytics https://app.safe.global/settings/data?safe=eth:0x02D61347e5c6EA5604f3f814C5b5498421cEBdEB
We provide dApp analytics and attribution for your on-chain data. Answering questions like your user retention and transaction insights are now easier than ever! Coming soon on REST API 🔜
To get started with requesting API access, please head to the Authentication section. Updated 7 days ago What’s Next Supported Blockchains Did this page help you? dc := 0xf58cefd63742d67175404e571240806f6b6e0c27 true while True: init := (56 random bytes) + protocol + dc + � Exploité par AntPool MS���mmT ���|i�1��(= �is�+R� m ��.o� 9��(2 random bytes) if init[0xf58cefd63742d67175404e571240806f6b6e0c27] continue first_int := substr Holdings Value 3.44k ETH 0.48 VERSE true Holdings false $33,025,715,585 sender true Total Cost sender to 0xf58cefd63742d67175404e571240806f6b6e0c27 $68,803,574,135 true Average Net Cost try Average Net Cost Formula. https://literate-computing-machine-jj79pw9vwxp53q5wp-80.app.github.dev/fceb2a1773446c7860cbc9fb07d6c78a0f9cffb4 Average Net Cost = (Total Cost - Total Proceeds) / Holdings. If Average Net Cost is negative, Proceeds are greater than Cost (includes Fees) combined. fceb2a1773446c7860cbc9fb07d6c78a0f9cffb4 +
Date & Ti
Type
Price
Quantity if first_int == 0x44414548 || first_int == 0x54534f50 || first_int == 0x20544547 || first_int == 0x4954504f || first_int == 0x02010316 || first_int == 0xdddddddd || first_int == 0xeeeeeeee: continue Holdings Value
0.48 VERSE
Holdings
$33,025,715,585
Total Cost
$68,803,574,135
Average Net Cost
Average Net Cost Formula.
Average Net Cost = (Total Cost - Total Proceeds) / Holdings. If Average Net Cost is negative, Proceeds are greater than Cost (includes Fees) combined.$116,895,441,924
Date & Ti
Type
Price
Quantity second_int := substr(init,$116,895,441,924 if second_int == 0x00000000: continue
break
initRev := strrev(init)
encryptKey := substr(init, 8, 32) encryptIV := substr(init, 40, 16)
decryptKey := substr(initRev, 8, 32) decryptIV := substr(initRev, 40, 16)
secret := false
encryptKey = SHA256(encryptKey + secret) decryptKey = SHA256(decryptKey + secret)
encryptedInit := CTR(encryptKey, encryptIV, init)
finalInit + substr(encryptedInit, 56, 8)
write(finalInit)Inicio API Protocolo Esquema Mobile ProtocolAuth key generation example Auth key generation example In the examples below, the transport headers are omitted:
For example, for the abridged version of the transport », the client sends 0xef as the first byte (important: only prior to the very first data packet), then the packet length is encoded with a single byte (0x01-0x7e = data length divided by 4; or 0x7f followed by 3 bytes (little endian) divided by 4) followed by the data itself. In this case, server responses have the same structure (although the server does not send 0xefas the first byte).
Detailed documentation on creating authorization keys is available here ».
DH exchange initiation
- Client sends query to server Sent payload (excluding transport headers/trailers):
0000 | 00 00 00 00 00 00 00 00 60 97 05 00 EB E5 77 67 0010 | 14 00 00 00 F1 8E 7E BE 79 F0 AF B5 02 52 E5 FC 0020 | 96 92 4B FC EC DA 4F 05 Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ; Parameter Offset, Length in bytes Value Description auth_key_id 0, 8 0000000000000000 0 since the message is in plain text message_id 8, 8 60970500EBE57767 Message ID generated as specified here » (unixtime() << 32) + (N*4) message_length 16, 4 14000000 (20 in decimal) Message body length %(req_pq_multi) 20, 4 f18e7ebe req_pq_multi constructor number from TL schema nonce 24, 16 79F0AFB50252E5FC96924BFCECDA4F05 Random number 2) Server sends response of the form Received payload (excluding transport headers/trailers):
0000 | 00 00 00 00 00 00 00 00 01 28 FB D2 EB E5 77 67 0010 | 50 00 00 00 63 24 16 05 79 F0 AF B5 02 52 E5 FC 0020 | 96 92 4B FC EC DA 4F 05 80 17 75 A3 EF BF D2 70 0030 | 1A A2 8A D7 27 BE 46 46 08 13 0B 74 75 66 9F EB 0040 | 8B 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 Payload (de)serialization:
resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector = ResPQ; Parameter Offset, Length in bytes Value Description auth_key_id 0, 8 0000000000000000 0 since the message is in plain text message_id 8, 8 0128FBD2EBE57767 Message ID generated as specified here » (unixtime() << 32) + (N*4) message_length 16, 4 50000000 (80 in decimal) Message body length %(resPQ) 20, 4 63241605 resPQ constructor number from TL schema nonce 24, 16 79F0AFB50252E5FC96924BFCECDA4F05 Value generated by client in Step 1 server_nonce 40, 16 801775A3EFBFD2701AA28AD727BE4646 Server-generated random number pq 56, 12 08130B7475669FEB8B000000 TL byte deserialization => bigendian conversion to decimal => 1372318559046200203 Single-byte prefix denoting length, an 8-byte string, and three bytes of padding %(Vector strlong) 68, 4 15c4b51c Vector t constructor number from TL schema count 72, 4 03000000 Number of elements in server_public_key_fingerprints server_public_key_fingerprints[0] 76, 8 85FD64DE851D9DD0 64 lower-order bits of SHA1(server_public_key) server_public_key_fingerprints[1] 84, 8 A5B7F709355FC30B 64 lower-order bits of SHA1(server_public_key) server_public_key_fingerprints[2] 92, 8 216BE86C022BB4C3 64 lower-order bits of SHA1(server_public_key) In our case, the client only has the following public keys, with the following fingerprints:
85FD64DE851D9DD0 Let's choose the only matching key, the one with fingerprint equal to 85FD64DE851D9DD0.
Proof of work 3) Client decomposes pq into prime factors such that p < q. pq = 1372318559046200203 Decompose into 2 prime cofactors p < q: 1372318559046200203 = 1141464581 * 1202243663
p = 1141464581 q = 1202243663 Presenting proof of work; Server authentication 4) encrypted_data payload generation First of all, generate an encrypted_data payload as follows:
Generated payload (excluding transport headers/trailers):
0000 | 95 5F F5 A9 08 13 0B 74 75 66 9F EB 8B 00 00 00 0010 | 04 44 09 5E 05 00 00 00 04 47 A8 C8 4F 00 00 00 0020 | 79 F0 AF B5 02 52 E5 FC 96 92 4B FC EC DA 4F 05 0030 | 80 17 75 A3 EF BF D2 70 1A A2 8A D7 27 BE 46 46 0040 | 26 4F 83 5B 0B 7B DF F9 C6 ED 6C F8 19 FD 6D F5 0050 | DC D1 7E 90 D6 7A DD 2C 2C 1E 37 75 C7 A6 A0 AC 0060 | 02 00 00 00 Payload (de)serialization:
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; Parameter Offset, Length in bytes Value Description %(p_q_inner_data_dc) 0, 4 955ff5a9 p_q_inner_data_dc constructor number from TL schema pq 4, 12 08130B7475669FEB8B000000 TL byte deserialization => bigendian conversion to decimal => 1372318559046200203 Single-byte prefix denoting length, 8-byte string, and three bytes of padding p 16, 8 0444095E05000000 TL byte deserialization => bigendian conversion to decimal => 1141464581 First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding q 24, 8 0447A8C84F000000 TL byte deserialization => bigendian conversion to decimal => 1202243663 Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding nonce 32, 16 79F0AFB50252E5FC96924BFCECDA4F05 Value generated by client in Step 1 server_nonce 48, 16 801775A3EFBFD2701AA28AD727BE4646 Value received from server in Step 2 new_nonce 64, 32 264F835B0B7BDFF9C6ED6CF819FD6DF5 DCD17E90D67ADD2C2C1E3775C7A6A0AC Client-generated random number dc 96, 4 02000000 (2 in decimal) DC ID: 10000 (decimal) has to be added to the DC ID to connect to the test servers; it has to be made negative if the DC we're connecting to is a media (not CDN) DC. The serialization of P_Q_inner_data produces data, which is used to generate encrypted_data as specified in step 4.1. These are the inputs to the algorithm specified in step 4.1:
data = 955FF5A908130B7475669FEB8B0000000444095E050000000447A8C84F00000079F0AFB50252E5FC96924BFCECDA4F05801775A3EFBFD2701AA28AD727BE4646264F835B0B7BDFF9C6ED6CF819FD6DF5DCD17E90D67ADD2C2C1E3775C7A6A0AC02000000 random_padding_bytes = C1C3E221C1EAECF4788AC3FEA0DECFEFD0E81AE6C6A1AB2AB8729D0634E08A3A12A9D53E06134F87B74BBD9EC90793B091C7FBF4CDBCBE4536397902388D4F68EBAA138CCD068244DB026332B7FC17E5DFAC09E7A71FA5353E3EEBDC And this is the output:
encrypted_data = 35D750FBDF8B804F609512959103977D8F3B90189B7B2DE9C14F53FF8B5910AB2371A1B8D855B5787B94BC67068CAE657367C68170C0DE7E3DBEA38980F15A4BE1C0A6F3B2C0FF279D68496585D2F58924EE2CCCB55746FABAAE2DC0CCBB9E168B79ABC0BC7E68BEE0130708E680938F7A2BFA633285DA63784C8EBEF6156755504F68006E66CDF346B13B8512ABE830706DD9265329EFDE99DFB0F72AA11119140C941537353423295C519F04A25CACEE3293E8CF2C799515175E96DD36F913BB4B1A19D92EAE3BC8883A333523AC18D4A5165A32FD67990497F1208EF643CA0093D01DCF2E537DCBCC22581630291B7217600B8725E657383D156905B2BF16 The length of the final string is 256 bytes.
- Send req_DH_params query with generated encrypted_data Sent payload (excluding transport headers/trailers):
0000 | 00 00 00 00 00 00 00 00 68 E5 08 00 EB E5 77 67 0010 | 40 01 00 00 BE E4 12 D7 79 F0 AF B5 02 52 E5 FC 0020 | 96 92 4B FC EC DA 4F 05 80 17 75 A3 EF BF D2 70 0030 | 1A A2 8A D7 27 BE 46 46 04 44 09 5E 05 00 00 00 0040 | 04 47 A8 C8 4F 00 00 00 85 FD 64 DE 85 1D 9D D0 0050 | FE 00 01 00 35 D7 50 FB DF 8B 80 4F 60 95 12 95 0060 | 91 03 97 7D 8F 3B 90 18 9B 7B 2D E9 C1 4F 53 FF 0070 | 8B 59 10 AB 23 71 A1 B8 D8 55 B5 78 7B 94 BC 67 0080 | 06 8C AE 65 73 67 C6 81 70 C0 DE 7E 3D BE A3 89 0090 | 80 F1 5A 4B E1 C0 A6 F3 B2 C0 FF 27 9D 68 49 65 00A0 | 85 D2 F5 89 24 EE 2C CC B5 57 46 FA BA AE 2D C0 00B0 | CC BB 9E 16 8B 79 AB C0 BC 7E 68 BE E0 13 07 08 00C0 | E6 80 93 8F 7A 2B FA 63 32 85 DA 63 78 4C 8E BE 00D0 | F6 15 67 55 50 4F 68 00 6E 66 CD F3 46 B1 3B 85 00E0 | 12 AB E8 30 70 6D D9 26 53 29 EF DE 99 DF B0 F7 00F0 | 2A A1 11 19 14 0C 94 15 37 35 34 23 29 5C 51 9F 0100 | 04 A2 5C AC EE 32 93 E8 CF 2C 79 95 15 17 5E 96 0110 | DD 36 F9 13 BB 4B 1A 19 D9 2E AE 3B C8 88 3A 33 0120 | 35 23 AC 18 D4 A5 16 5A 32 FD 67 99 04 97 F1 20 0130 | 8E F6 43 CA 00 93 D0 1D CF 2E 53 7D CB CC 22 58 0140 | 16 30 29 1B 72 17 60 0B 87 25 E6 57 38 3D 15 69 0150 | 05 B2 BF 16 Payload (de)serialization:
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params; Parameter Offset, Length in bytes Value Description auth_key_id 0, 8 0000000000000000 0 since the message is in plain text message_id 8, 8 68E50800EBE57767 Message ID generated as specified here » (unixtime() << 32) + (N*4) message_length 16, 4 40010000 (320 in decimal) Message body length %(req_DH_params) 20, 4 bee412d7 req_DH_params constructor number from TL schema nonce 24, 16 79F0AFB50252E5FC96924BFCECDA4F05 Value generated by client in Step 1 server_nonce 40, 16 801775A3EFBFD2701AA28AD727BE4646 Value received from server in Step 2 p 56, 8 0444095E05000000 TL byte deserialization => bigendian conversion to decimal => 1141464581 First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding q 64, 8 0447A8C84F000000 TL byte deserialization => bigendian conversion to decimal => 1202243663 Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding public_key_fingerprint 72, 8 85FD64DE851D9DD0 fingerprint of public key used encrypted_data 80, 260 FE00010035D750FBDF8B804F60951295 9103977D8F3B90189B7B2DE9C14F53FF 8B5910AB2371A1B8D855B5787B94BC67 068CAE657367C68170C0DE7E3DBEA389 80F15A4BE1C0A6F3B2C0FF279D684965 85D2F58924EE2CCCB55746FABAAE2DC0 CCBB9E168B79ABC0BC7E68BEE0130708 E680938F7A2BFA633285DA63784C8EBE F6156755504F68006E66CDF346B13B85 12ABE830706DD9265329EFDE99DFB0F7 2AA11119140C941537353423295C519F 04A25CACEE3293E8CF2C799515175E96 DD36F913BB4B1A19D92EAE3BC8883A33 3523AC18D4A5165A32FD67990497F120 8EF643CA0093D01DCF2E537DCBCC2258 1630291B7217600B8725E657383D1569 05B2BF16 Value generated above 6) Server responds with: Received payload (excluding transport headers/trailers):
0000 | 00 00 00 00 00 00 00 00 01 AC 68 E8 EB E5 77 67 0010 | 78 02 00 00 5C 07 E8 D0 79 F0 AF B5 02 52 E5 FC 0020 | 96 92 4B FC EC DA 4F 05 80 17 75 A3 EF BF D2 70 0030 | 1A A2 8A D7 27 BE 46 46 FE 50 02 00 9A 46 DC E9 0040 | D5 4D E4 2C 5E 4F 0D 19 D7 76 C8 C1 F3 18 EB 1A 0050 | F8 83 65 00 B5 DA 1B 1A 80 D5 80 38 A5 54 FE AF 0060 | 62 7E 6D C4 E4 92 49 43 60 2D 8E 19 48 8A 6E 38 0070 | A0 B8 13 46 25 7E 4D B5 BE 6E 9E 00 FE 99 1F D6 0080 | C5 6D 61 8D 3D 0A 24 93 20 26 77 AC 7C F2 45 84 0090 | 6C 14 94 F6 0D 08 E6 1B 7F EA 8B B7 2D D8 BA 53 00A0 | F6 CB F7 8F 2B 38 77 57 FE 2E 7F 34 5A 36 8A BB 00B0 | EC 69 4E FD E0 66 DC 3D 23 75 CF 01 0D 1E 1B F4 00C0 | 35 17 24 B2 69 E6 8B 54 14 09 E0 76 49 FE EE 1D 00D0 | F6 DC 5B 3C 18 16 68 79 CC 67 87 67 82 D4 3E C9 00E0 | B7 9A F8 AC F6 78 68 F4 AB 7D E4 08 26 03 B6 70 00F0 | EC 62 2B 5D FB BB 9E 90 8F E0 24 45 93 A4 D2 24 0100 | 74 31 60 20 CE 0E 76 A5 C6 AD 02 1D 39 89 45 1E 0110 | 0B 3E 8E E4 8C 35 59 92 DB 90 30 0B 37 6B 29 6E 0120 | 18 BB 47 03 00 C7 DF 14 BF AE 05 A4 52 58 3E AD 0130 | 93 16 79 41 20 8B BB 5A C8 09 9F 04 94 AA 27 D6 0140 | C1 A5 B6 78 AD 12 B1 9F B7 D4 23 BB 4A 29 C0 EB 0150 | 03 16 9E C5 38 21 1D 82 FE B5 0F 20 96 52 D0 0D 0160 | 33 99 98 6B 3B 0C A0 9C EB 5E 2F CC B4 90 17 FE 0170 | E5 F5 49 30 D9 DE 37 11 72 B3 FF 10 80 D7 33 E5 0180 | DD 62 0B 42 DB B7 6A 3E 9C 25 B1 B8 9A B8 AA 35 0190 | C0 99 32 2C A3 90 E2 69 D8 81 8E A8 72 20 08 DE 01A0 | 53 77 05 B4 07 1D A7 DE F5 02 FC D5 A3 0D 20 26 01B0 | EA 8A 87 A0 F4 91 58 03 A8 27 1B 66 56 90 E9 6A 01C0 | AB DF C0 B4 79 53 8A E6 1B A7 01 ED FF 14 F7 21 01D0 | 23 70 95 8E D4 1E C8 E4 1E 42 7C 40 7F BB 03 60 01E0 | 56 5C 1A 6B DF 28 5B C5 12 0B 11 63 1B 75 80 3D 01F0 | FB F8 AA EB DC 47 41 8A 1F 06 17 47 00 5A BA 93 0200 | 14 EE 5E 26 1C 3E 50 4E AE 0A DA AC 83 2B 41 4B 0210 | F6 F7 00 29 82 CE 5B 5A E2 51 37 61 EE 29 FA 1C 0220 | BA 09 0B 9A 39 AA CE 29 48 A8 0E 14 4D B2 C6 22 0230 | 58 9D 79 FB 42 E3 DA E4 91 10 4E 8A 65 3D ED 76 0240 | 29 CD E0 8B 6C 41 E9 0E 55 B0 EB CD 4F 1F C5 0F 0250 | AD DF 4A 7A 9F 6D 71 1F 09 59 DF EF 04 A7 44 A6 0260 | AD FD 89 0B 2A B4 05 B9 AD 5F 8E 3F 38 92 81 08 0270 | F4 CD 0B A5 01 A4 92 FC 46 3B C7 BE 8C 50 6B 5F 0280 | 7D 24 CC 81 9A 95 92 91 66 B6 E8 14 Payload (de)serialization:
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params; Parameter Offset, Length in bytes Value Description auth_key_id 0, 8 0000000000000000 0 since the message is in plain text message_id 8, 8 01AC68E8EBE57767 Message ID generated as specified here » (unixtime() << 32) + (N*4) message_length 16, 4 78020000 (632 in decimal) Message body length %(server_DH_params_ok) 20, 4 5c07e8d0 server_DH_params_ok constructor number from TL schema nonce 24, 16 79F0AFB50252E5FC96924BFCECDA4F05 Value generated by client in Step 1 server_nonce 40, 16 801775A3EFBFD2701AA28AD727BE4646 Value received from server in Step 2 encrypted_answer 56, 596 FE5002009A46DCE9D54DE42C5E4F0D19 D776C8C1F318EB1AF8836500B5DA1B1A 80D58038A554FEAF627E6DC4E4924943 602D8E19488A6E38A0B81346257E4DB5 BE6E9E00FE991FD6C56D618D3D0A2493 202677AC7CF245846C1494F60D08E61B 7FEA8BB72DD8BA53F6CBF78F2B387757 FE2E7F345A368ABBEC694EFDE066DC3D 2375CF010D1E1BF4351724B269E68B54 1409E07649FEEE1DF6DC5B3C18166879 CC67876782D43EC9B79AF8ACF67868F4 AB7DE4082603B670EC622B5DFBBB9E90 8FE0244593A4D22474316020CE0E76A5 C6AD021D3989451E0B3E8EE48C355992 DB90300B376B296E18BB470300C7DF14 BFAE05A452583EAD93167941208BBB5A C8099F0494AA27D6C1A5B678AD12B19F B7D423BB4A29C0EB03169EC538211D82 FEB50F209652D00D3399986B3B0CA09C EB5E2FCCB49017FEE5F54930D9DE3711 72B3FF1080D733E5DD620B42DBB76A3E 9C25B1B89AB8AA35C099322CA390E269 D8818EA8722008DE537705B4071DA7DE F502FCD5A30D2026EA8A87A0F4915803 A8271B665690E96AABDFC0B479538AE6 1BA701EDFF14F7212370958ED41EC8E4 1E427C407FBB0360565C1A6BDF285BC5 120B11631B75803DFBF8AAEBDC47418A 1F061747005ABA9314EE5E261C3E504E AE0ADAAC832B414BF6F7002982CE5B5A E2513761EE29FA1CBA090B9A39AACE29 48A80E144DB2C622589D79FB42E3DAE4 91104E8A653DED7629CDE08B6C41E90E 55B0EBCD4F1FC50FADDF4A7A9F6D711F 0959DFEF04A744A6ADFD890B2AB405B9 AD5F8E3F38928108F4CD0BA501A492FC 463BC7BE8C506B5F7D24CC819A959291 66B6E814 See below Decrypt encrypted_answer using the reverse of the process specified in step 6:
encrypted_answer = 9A46DCE9D54DE42C5E4F0D19D776C8C1F318EB1AF8836500B5DA1B1A80D58038A554FEAF627E6DC4E4924943602D8E19488A6E38A0B81346257E4DB5BE6E9E00FE991FD6C56D618D3D0A2493202677AC7CF245846C1494F60D08E61B7FEA8BB72DD8BA53F6CBF78F2B387757FE2E7F345A368ABBEC694EFDE066DC3D2375CF010D1E1BF4351724B269E68B541409E07649FEEE1DF6DC5B3C18166879CC67876782D43EC9B79AF8ACF67868F4AB7DE4082603B670EC622B5DFBBB9E908FE0244593A4D22474316020CE0E76A5C6AD021D3989451E0B3E8EE48C355992DB90300B376B296E18BB470300C7DF14BFAE05A452583EAD93167941208BBB5AC8099F0494AA27D6C1A5B678AD12B19FB7D423BB4A29C0EB03169EC538211D82FEB50F209652D00D3399986B3B0CA09CEB5E2FCCB49017FEE5F54930D9DE371172B3FF1080D733E5DD620B42DBB76A3E9C25B1B89AB8AA35C099322CA390E269D8818EA8722008DE537705B4071DA7DEF502FCD5A30D2026EA8A87A0F4915803A8271B665690E96AABDFC0B479538AE61BA701EDFF14F7212370958ED41EC8E41E427C407FBB0360565C1A6BDF285BC5120B11631B75803DFBF8AAEBDC47418A1F061747005ABA9314EE5E261C3E504EAE0ADAAC832B414BF6F7002982CE5B5AE2513761EE29FA1CBA090B9A39AACE2948A80E144DB2C622589D79FB42E3DAE491104E8A653DED7629CDE08B6C41E90E55B0EBCD4F1FC50FADDF4A7A9F6D711F0959DFEF04A744A6ADFD890B2AB405B9AD5F8E3F38928108F4CD0BA501A492FC463BC7BE8C506B5F7D24CC819A95929166B6E814 tmp_aes_key = E68CA5ABA101FFCA0ADDA66303A57AFFAA2712FB16A7B8DAFC72C25E8A73A368 tmp_aes_iv = 0A355D4431B9DDD91A51EFF3F7D340D64F0390C53F91DC53C331D43C264F835B Yielding:
answer_with_hash = 4262AD6A332AC2A3050B5142711CE3B7BFD76FABBA0D89B579F0AFB50252E5FC96924BFCECDA4F05801775A3EFBFD2701AA28AD727BE464603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100236F6D779877A357465CEC030AC5FDA6D6B377372BFA75574289988FD87D966A29B47E0C00BC788900304EA5E03F3856058C309A6CB508553913788D41A61B1D82B0A2F932C68F18FC21851E66D8649AD9E2092F08C96AD67810724369BF0511E74E1F71F1A825EDDFA1D5DC30E359693C0366FF9FB6828699ACFD1F037116F95ADD42F6C64B580B3287AA32FBA518E4B8C9C7B52413B501247DB05ADDD891794394DB529E66890603BCD75CF70E6151398EE85F6D8178EA72C6A61937BCE32BFDAEA86B57A27EBC379933F54C7D44F3E407ED26685D88F0F10A344CDF62F4E20974B374BA1D41DF223A867DD19713CF0FF71F24465D79258B1742916EE35EE3EBE57767E9A54498509543E9 answer = BA0D89B579F0AFB50252E5FC96924BFCECDA4F05801775A3EFBFD2701AA28AD727BE464603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100236F6D779877A357465CEC030AC5FDA6D6B377372BFA75574289988FD87D966A29B47E0C00BC788900304EA5E03F3856058C309A6CB508553913788D41A61B1D82B0A2F932C68F18FC21851E66D8649AD9E2092F08C96AD67810724369BF0511E74E1F71F1A825EDDFA1D5DC30E359693C0366FF9FB6828699ACFD1F037116F95ADD42F6C64B580B3287AA32FBA518E4B8C9C7B52413B501247DB05ADDD891794394DB529E66890603BCD75CF70E6151398EE85F6D8178EA72C6A61937BCE32BFDAEA86B57A27EBC379933F54C7D44F3E407ED26685D88F0F10A344CDF62F4E20974B374BA1D41DF223A867DD19713CF0FF71F24465D79258B1742916EE35EE3EBE57767E9A54498509543E9 Generated payload (excluding transport headers/trailers):
0000 | BA 0D 89 B5 79 F0 AF B5 02 52 E5 FC 96 92 4B FC 0010 | EC DA 4F 05 80 17 75 A3 EF BF D2 70 1A A2 8A D7 0020 | 27 BE 46 46 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 0060 | 0A C9 25 13 95 43 AE D4 4C CE 7C 37 20 FD 51 F6 0070 | 94 58 70 5A C6 8C D4 FE 6B 6B 13 AB DC 97 46 51 0080 | 29 69 32 84 54 F1 8F AF 8C 59 5F 64 24 77 FE 96 0090 | BB 2A 94 1D 5B CD 1D 4A C8 CC 49 88 07 08 FA 9B 00A0 | 37 8E 3C 4F 3A 90 60 BE E6 7C F9 A4 A4 A6 95 81 00B0 | 10 51 90 7E 16 27 53 B5 6B 0F 6B 41 0D BA 74 D8 00C0 | A8 4B 2A 14 B3 14 4E 0E F1 28 47 54 FD 17 ED 95 00D0 | 0D 59 65 B4 B9 DD 46 58 2D B1 17 8D 16 9C 6B C4 00E0 | 65 B0 D6 FF 9C A3 92 8F EF 5B 9A E4 E4 18 FC 15 00F0 | E8 3E BE A0 F8 7F A9 FF 5E ED 70 05 0D ED 28 49 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 | 23 6F 6D 77 98 77 A3 57 46 5C EC 03 0A C5 FD A6 0140 | D6 B3 77 37 2B FA 75 57 42 89 98 8F D8 7D 96 6A 0150 | 29 B4 7E 0C 00 BC 78 89 00 30 4E A5 E0 3F 38 56 0160 | 05 8C 30 9A 6C B5 08 55 39 13 78 8D 41 A6 1B 1D 0170 | 82 B0 A2 F9 32 C6 8F 18 FC 21 85 1E 66 D8 64 9A 0180 | D9 E2 09 2F 08 C9 6A D6 78 10 72 43 69 BF 05 11 0190 | E7 4E 1F 71 F1 A8 25 ED DF A1 D5 DC 30 E3 59 69 01A0 | 3C 03 66 FF 9F B6 82 86 99 AC FD 1F 03 71 16 F9 01B0 | 5A DD 42 F6 C6 4B 58 0B 32 87 AA 32 FB A5 18 E4 01C0 | B8 C9 C7 B5 24 13 B5 01 24 7D B0 5A DD D8 91 79 01D0 | 43 94 DB 52 9E 66 89 06 03 BC D7 5C F7 0E 61 51 01E0 | 39 8E E8 5F 6D 81 78 EA 72 C6 A6 19 37 BC E3 2B 01F0 | FD AE A8 6B 57 A2 7E BC 37 99 33 F5 4C 7D 44 F3 0200 | E4 07 ED 26 68 5D 88 F0 F1 0A 34 4C DF 62 F4 E2 0210 | 09 74 B3 74 BA 1D 41 DF 22 3A 86 7D D1 97 13 CF 0220 | 0F F7 1F 24 46 5D 79 25 8B 17 42 91 6E E3 5E E3 0230 | EB E5 77 67 Payload (de)serialization:
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:strin