├── README.md
└── solanabeach.svg
/README.md:
--------------------------------------------------------------------------------
1 | #
Solana Beach API
2 |
3 | Hi, thanks for your interest in the Solana Beach API.
4 |
5 | ## 📋 Table of Contents
6 |
7 | - [API Key Request](#api-key-request)
8 | - [Rate Limits](#rate-limits)
9 | - [Documentation](#documentation)
10 | - [Account Data](#account-data) *(v1 API)*
11 | - [Block Data](#block-data)
12 | - [Dashboard Data](#dashboard-data)
13 | - [Transaction Data](#transaction-data) *(partially v1 API)*
14 | - [Validator Data](#validator-data)
15 | - [Validators Data](#validators-data)
16 | - [We Appreciate Your Delegation](#we-appreciate-your-delegation)
17 |
18 | ---
19 |
20 | ## 🔑 Please request an API-Key
21 |
22 | To receive a key please join our [Telegram Group](https://t.me/+UW04VHylcMdlZmUy) and send a DM to one of the team members.
23 |
24 | ## ⚙️ Rate Limits
25 |
26 | The two tables below show the rate limit restrictions and how you can trace and throttle your consumption.
27 |
28 | | Rate Limiter | Limit | Relevance |
29 | | ----------- | ----- | ------- |
30 | | **Standard** | 100 requests / 10 seconds | This rate limiter counts every request |
31 | | **On-Demand** | 600 requests / 20 minutes | This rate limiter counts every request that
triggers a call to an external data provider |
32 |
33 |
34 | | Response Header | Relevance |
35 | | -------- | ------- |
36 | | **Solana-Beach-Standard-Credits-Remaining** | You can use this value to throttle your scripts |
37 | | **Solana-Beach-Standard-Credits-Consumed** | You can use this value to trace your consumption |
38 | | **Solana-Beach-On-Demand-Credits-Remaining** | You can use this value to throttle your scripts |
39 | | **Solana-Beach-On-Demand-Credits-Consumed** | You can use this value to trace your consumption |
40 |
41 | ---
42 |
43 | ## 📚 Documentation
44 |
45 | Our REST-API servers are available under the Base URL `https://api.solanabeach.io/v2`.
46 |
47 | Your requests must use the HTTP `GET` method and must include a `Accept: application/json` and `Authorization: Bearer {YOUR-API-KEY}` header.
48 |
49 | If the HTTP response status code reports an error the response schema will look like this:
50 |
51 | ```json
52 | {
53 | "err": "string"
54 | }
55 | ```
56 |
57 | ---
58 |
59 | ### 🪪 Account Data
60 |
61 | > ⚠️ **API Version Note**: All Account Data endpoints use Base URL `https://api.solanabeach.io/v1`
62 |
63 | #### `GET /account/{pubkey}`
64 | **Fetch account fields**
65 |
66 | Returns detailed information about a specific account.
67 |
68 |
69 | Response Schema
70 |
71 |
72 | ```json
73 | {
74 | "type": "string",
75 | "value": {
76 | "base": {
77 | "address": {
78 | "address": "string",
79 | "name": "string",
80 | "logo": "string",
81 | "ticker": "string",
82 | "cmcId": "string"
83 | },
84 | "balance": 0,
85 | "executable": true,
86 | "owner": {
87 | "address": "string",
88 | "name": "string",
89 | "logo": "string",
90 | "ticker": "string",
91 | "cmcId": "string"
92 | },
93 | "rentEpoch": 0,
94 | "dataSize": 0
95 | },
96 | "extended": {}
97 | }
98 | }
99 | ```
100 |
101 |
102 |
103 | #### `GET /account/{pubkey}/transactions`
104 | **Fetch transactions**
105 |
106 | Returns transactions associated with the specified account.
107 |
108 |
109 | Query Options
110 |
111 |
112 | | Parameter | Description | Default |
113 | | ----------- | ----- | ------- |
114 | | `before` | The signature of the last transaction you want to search backwards from | - |
115 | | `limit` | The upper limit of transactions you want to receive | - |
116 |
117 |
118 |
119 |
120 |
121 | Response Schema
122 |
123 |
124 | ```json
125 | [
126 | {
127 | "transactionHash": "string",
128 | "blockNumber": 0,
129 | "index": 0,
130 | "accounts": [
131 | {
132 | "account": {
133 | "address": "string",
134 | "name": "string",
135 | "logo": "string",
136 | "ticker": "string",
137 | "cmcId": "string"
138 | },
139 | "writable": true,
140 | "signer": true,
141 | "program": true
142 | }
143 | ],
144 | "header": {
145 | "numRequiredSignatures": 0,
146 | "numReadonlySignedAccounts": 0,
147 | "numReadonlyUnsignedAccounts": 0
148 | },
149 | "instructions": [
150 | {
151 | "parsed": {},
152 | "raw": {
153 | "data": "string",
154 | "accounts": [
155 | 0
156 | ],
157 | "programIdIndex": 0
158 | }
159 | }
160 | ],
161 | "recentBlockhash": "string",
162 | "signatures": [
163 | "string"
164 | ],
165 | "meta": {
166 | "err": {},
167 | "fee": 0,
168 | "status": {},
169 | "logMessages": [
170 | "string"
171 | ],
172 | "preBalances": [
173 | 0
174 | ],
175 | "postBalances": [
176 | 0
177 | ]
178 | },
179 | "valid": true,
180 | "blocktime": {
181 | "absolute": 0,
182 | "relative": 0
183 | },
184 | "mostImportantInstruction": {
185 | "name": "string",
186 | "weight": 0,
187 | "index": 0
188 | },
189 | "smart": [
190 | {
191 | "type": "string",
192 | "value": "string"
193 | }
194 | ],
195 | "ondemand": true
196 | }
197 | ]
198 | ```
199 |
200 |
201 |
202 | #### `GET /account/{pubkey}/stakes`
203 | **Fetch stake accounts**
204 |
205 | Returns stake accounts associated with the specified account.
206 |
207 |
208 | Response Schema
209 |
210 |
211 | ```json
212 | [
213 | {
214 | "pubkey": "string",
215 | "lamports": 0,
216 | "data": {
217 | "state": 0,
218 | "meta": {
219 | "rent_exempt_reserve": 0,
220 | "authorized": {
221 | "staker": "string",
222 | "withdrawer": "string"
223 | }
224 | },
225 | "lockup": {
226 | "unix_timestamp": 0,
227 | "epoch": 0,
228 | "custodian": "string"
229 | },
230 | "stake": {
231 | "delegation": {
232 | "voter_pubkey": "string",
233 | "stake": 0,
234 | "activation_epoch": 0,
235 | "deactivation_epoch": 0,
236 | "warmup_cooldown_rate": 0,
237 | "validatorInfo": {
238 | "name": "string",
239 | "image": "string",
240 | "website": "string",
241 | "nodePubkey": "string"
242 | }
243 | },
244 | "credits_observed": 0
245 | }
246 | }
247 | }
248 | ]
249 | ```
250 |
251 |
252 |
253 | #### `GET /account/{stake_pubkey}/stake-rewards`
254 | **Fetch stake account rewards**
255 |
256 | Returns rewards for the specified stake account.
257 |
258 |
259 | Query Options
260 |
261 |
262 | | Parameter | Description | Default |
263 | | ----------- | ----- | ------- |
264 | | `cursor` | The epoch of the last stake reward you want to search backwards from | - |
265 |
266 |
267 |
268 |
269 |
270 | Response Schema
271 |
272 |
273 | ```json
274 | [
275 | {
276 | "epoch": 0,
277 | "effectiveSlot": 0,
278 | "amount": "string",
279 | "postBalance": "string",
280 | "percentChange": 0,
281 | "apr": 0
282 | }
283 | ]
284 | ```
285 |
286 |
287 |
288 | #### `GET /account/{pubkey}/tokens`
289 | **Fetch token accounts**
290 |
291 | Returns token accounts associated with the specified account.
292 |
293 |
294 | Response Schema
295 |
296 |
297 | ```json
298 | [
299 | {
300 | "mint": {
301 | "address": "string",
302 | "name": "string",
303 | "logo": "string",
304 | "ticker": "string",
305 | "cmcId": "string"
306 | },
307 | "amount": 0,
308 | "address": {
309 | "address": "string",
310 | "name": "string",
311 | "logo": "string",
312 | "ticker": "string",
313 | "cmcId": "string"
314 | },
315 | "decimals": 0
316 | }
317 | ]
318 | ```
319 |
320 |
321 |
322 | #### `GET /account/{pubkey}/token-transfers`
323 | **Fetch token account transfers**
324 |
325 | Returns token transfers associated with the specified account.
326 |
327 |
328 | Response Schema
329 |
330 |
331 | ```json
332 | [
333 | {
334 | "blocknumber": 0,
335 | "txhash": "string",
336 | "mint": {
337 | "address": "string",
338 | "name": "string",
339 | "logo": "string",
340 | "ticker": "string",
341 | "cmcId": "string"
342 | },
343 | "valid": true,
344 | "amount": 0,
345 | "source": {
346 | "address": "string",
347 | "name": "string",
348 | "logo": "string",
349 | "ticker": "string",
350 | "cmcId": "string"
351 | },
352 | "destination": {
353 | "address": "string",
354 | "name": "string",
355 | "logo": "string",
356 | "ticker": "string",
357 | "cmcId": "string"
358 | },
359 | "inner": true,
360 | "txindex": 0,
361 | "timestamp": {
362 | "absolute": 0,
363 | "relative": 0
364 | },
365 | "decimals": 0
366 | }
367 | ]
368 | ```
369 |
370 |
371 |
372 |
373 | ---
374 |
375 | ### 📦 Block Data
376 |
377 | #### `GET /block/:number`
378 | **Fetch block details**
379 |
380 | Returns detailed information about a specific block, including transaction metrics, program statistics, and validator information.
381 |
382 |
383 | Response Schema
384 |
385 |
386 | ```json
387 | {
388 | "slot": 0,
389 | "blockTime": 0,
390 | "epoch": 0,
391 | "nodePubkey": "string",
392 | "voteTransactions": 0,
393 | "userTransactions": 0,
394 | "voteInstructions": 0,
395 | "userInstructions": 0,
396 | "successTransactions": 0,
397 | "fees": 0,
398 | "programInstructions": {
399 | "programName": {
400 | "totalInstructionCount": 0,
401 | "instructionCount": {
402 | "instructionType1": 0,
403 | "instructionType2": 0,
404 | // ... other instruction types
405 | }
406 | }
407 | }
408 | }
409 | ```
410 |
411 |
412 |
413 | #### `GET /recent-blocks`
414 | **Fetch recent blocks**
415 |
416 | Returns a list of recent blocks with basic information including slot, block time, and validator details.
417 |
418 |
419 | Query Options
420 |
421 |
422 | | Parameter | Description | Default |
423 | | ------ | ------------------------------------------------------------- | ------- |
424 | | `offset` | The slot of the last block you want to search backwards from | - |
425 | | `limit` | The upper limit of blocks you want to receive | - |
426 |
427 |
428 |
429 |
430 |
431 | Response Schema
432 |
433 |
434 | ```json
435 | {
436 | "blocks": [
437 | {
438 | "slot": "string",
439 | "blockTime": "string",
440 | "voteInstructions": 0,
441 | "userInstructions": 0,
442 | "fees": "string",
443 | "votePubkey": "string",
444 | "name": "string",
445 | "iconUrl": "string"
446 | }
447 | ],
448 | "pagination": {
449 | "total": 0,
450 | "offset": 0,
451 | "limit": 0
452 | }
453 | }
454 | ```
455 |
456 |
457 |
458 | #### `GET /top-programs`
459 | **Fetch statistics about most active programs**
460 |
461 | Returns statistics about the most active programs on the network, including total instruction counts and breakdowns of specific instruction types.
462 |
463 |
464 | Response Schema
465 |
466 |
467 | ```json
468 | [
469 | {
470 | "programName": "string",
471 | "totalInstructionCount": 0,
472 | "instructionCount": {
473 | "instructionType1": 0,
474 | "instructionType2": 0,
475 | // ... other instruction types
476 | }
477 | }
478 | ]
479 | ```
480 |
481 |
482 |
483 | ---
484 |
485 | ### 📊 Dashboard Data
486 |
487 | #### `GET /transactions-per-second`
488 | **Fetch transactions per second**
489 |
490 | Returns vote and user transactions per second. Data is cached for 60 seconds.
491 |
492 |
493 | Response Schema
494 |
495 |
496 | ```json
497 | {
498 | "voteTransactionsPerSecond": 0,
499 | "userTransactionsPerSecond": 0
500 | }
501 | ```
502 |
503 |
504 |
505 | #### `GET /epoch-info`
506 | **Fetch current epoch information**
507 |
508 | Returns current epoch information. Data is cached for 10 seconds.
509 |
510 |
511 | Response Schema
512 |
513 |
514 | ```json
515 | {
516 | "absoluteSlot": 0,
517 | "blockHeight": 0,
518 | "epoch": 0,
519 | "slotIndex": 0,
520 | "slotsInEpoch": 0,
521 | "transactionCount": 0,
522 | "epochStartTime": 0,
523 | "slotTime": 0
524 | }
525 | ```
526 |
527 |
528 |
529 | #### `GET /supply-breakdown`
530 | **Fetch current supply and stake breakdown**
531 |
532 | Returns current supply and stake breakdown. Data is cached for 60 seconds.
533 |
534 |
535 | Response Schema
536 |
537 |
538 | ```json
539 | {
540 | "supply": {
541 | "circulating": 0,
542 | "nonCirculating": 0,
543 | "total": 0
544 | },
545 | "stake": {
546 | "effective": 0,
547 | "activating": 0,
548 | "deactivating": 0
549 | }
550 | }
551 | ```
552 |
553 |
554 |
555 | #### `GET /instruction-chart`
556 | **Fetch information about user and vote instructions**
557 |
558 | Returns information about user and vote instructions. Data is cached for 60 seconds.
559 |
560 |
561 | Response Schema
562 |
563 |
564 | ```json
565 | [
566 | {
567 | "time": "string",
568 | "userInstructions": "string",
569 | "voteInstructions": "string"
570 | }
571 | ]
572 | ```
573 |
574 |
575 |
576 | ---
577 |
578 | ### 💳 Transaction Data
579 |
580 | > ⚠️ **API Version Note**: The `/transaction/{signature}` endpoint in this section uses Base URL `https://api.solanabeach.io/v1`
581 |
582 | #### `GET /transaction/{signature}`
583 | **Fetch transaction**
584 |
585 | Returns detailed information about a specific transaction.
586 |
587 |
588 | Response Schema
589 |
590 |
591 | ```json
592 | {
593 | "transactionHash": "string",
594 | "blockNumber": 0,
595 | "index": 0,
596 | "accounts": [
597 | {
598 | "account": {
599 | "address": "string",
600 | "name": "string",
601 | "logo": "string",
602 | "ticker": "string",
603 | "cmcId": "string"
604 | },
605 | "writable": true,
606 | "signer": true,
607 | "program": true
608 | }
609 | ],
610 | "header": {
611 | "numRequiredSignatures": 0,
612 | "numReadonlySignedAccounts": 0,
613 | "numReadonlyUnsignedAccounts": 0
614 | },
615 | "instructions": [
616 | {
617 | "parsed": {},
618 | "raw": {
619 | "data": "string",
620 | "accounts": [
621 | 0
622 | ],
623 | "programIdIndex": 0
624 | }
625 | }
626 | ],
627 | "recentBlockhash": "string",
628 | "signatures": [
629 | "string"
630 | ],
631 | "meta": {
632 | "err": {},
633 | "fee": 0,
634 | "status": {},
635 | "logMessages": [
636 | "string"
637 | ],
638 | "preBalances": [
639 | 0
640 | ],
641 | "postBalances": [
642 | 0
643 | ]
644 | },
645 | "valid": true,
646 | "blocktime": {
647 | "absolute": 0,
648 | "relative": 0
649 | },
650 | "mostImportantInstruction": {
651 | "name": "string",
652 | "weight": 0,
653 | "index": 0
654 | },
655 | "smart": [
656 | {
657 | "type": "string",
658 | "value": "string"
659 | }
660 | ],
661 | "ondemand": true
662 | }
663 | ```
664 |
665 |
666 |
667 | #### `GET /recent-transactions`
668 | **Fetch recent transactions**
669 |
670 | Returns recent transactions with pagination support. Data is cached for 30 seconds.
671 |
672 |
673 | Query Options
674 |
675 |
676 | | Parameter | Description | Default | Max |
677 | |-----------|-------------|---------|-----|
678 | | offset | Starting position in the transaction list | 0 | - |
679 | | limit | Maximum number of transactions to return | 50 | 100 |
680 |
681 |
682 |
683 |
684 |
685 | Response Schema
686 |
687 |
688 | ```json
689 | {
690 | "slot": "number",
691 | "transactions": [
692 | {
693 | "transactionHash": "string",
694 | "accounts": [
695 | {
696 | "isSigner": "boolean",
697 | "isWritable": "boolean",
698 | "isLUT": "boolean",
699 | "account": {
700 | "address": "string",
701 | "name": "string | null",
702 | "ticker": "string | null",
703 | "cmcId": "string | null",
704 | "logo": "string | null",
705 | "meta": {
706 | "url": "string | null"
707 | },
708 | "decimals": "number | null"
709 | }
710 | }
711 | ],
712 | "recentBlockhash": "string",
713 | "signatures": ["string"],
714 | "meta": {
715 | "computeUnitsConsumed": "number",
716 | "err": "object | null",
717 | "fee": "number",
718 | "loadedAddresses": {
719 | "readonly": ["string"],
720 | "writable": ["string"]
721 | },
722 | "logMessages": ["string"],
723 | "postBalances": ["number"],
724 | "postTokenBalances": [
725 | {
726 | "accountIndex": "number",
727 | "mint": "object",
728 | "owner": "object",
729 | "uiTokenAmount": "object"
730 | }
731 | ],
732 | "preBalances": ["number"],
733 | "preTokenBalances": [
734 | {
735 | "accountIndex": "number",
736 | "mint": "object",
737 | "owner": "object",
738 | "uiTokenAmount": "object"
739 | }
740 | ],
741 | "rewards": ["object"],
742 | "status": "object"
743 | },
744 | "mostImportantInstruction": {
745 | "name": "string",
746 | "weight": "number",
747 | "index": "number"
748 | },
749 | "overpaidFees": "number"
750 | }
751 | ],
752 | "pagination": {
753 | "total": "number",
754 | "offset": "number",
755 | "limit": "number"
756 | }
757 | }
758 | ```
759 |
760 |
761 |
762 |
763 |
764 | ---
765 |
766 | ### 🔍 Validator Data
767 |
768 | #### `GET /validator/:address/stake-accounts`
769 | **Fetch validator stake accounts**
770 |
771 | Returns a paginated list of stake accounts for a given validator.
772 |
773 |
774 | Query Options
775 |
776 |
777 | | Parameter | Description | Default | Max |
778 | | ------- | ---------------------------------------------------- | ------- | ------- |
779 | | `offset` | Starting point for pagination | 0 | - |
780 | | `limit` | Maximum number of results to return | 10 | 1000 |
781 |
782 |
783 |
784 |
785 |
786 | Response Schema
787 |
788 |
789 | ```json
790 | {
791 | "stakeAccounts": [
792 | {
793 | "stakePubkey": "string",
794 | "stakeAuthority": "string",
795 | "withdrawAuthority": "string",
796 | "state": 0,
797 | "stake": 0,
798 | "activationEpoch": 0,
799 | "deactivationEpoch": 0,
800 | "lastUpdate": "string"
801 | }
802 | ],
803 | "pagination": {
804 | "total": 0,
805 | "offset": 0,
806 | "limit": 0
807 | }
808 | }
809 | ```
810 |
811 |
812 |
813 | #### `GET /validator/:nodepubkey/block-rewards-history`
814 | **Fetch validator block rewards history**
815 |
816 | Returns historical block rewards data for a specific validator.
817 |
818 |
819 | Query Options
820 |
821 |
822 | | Parameter | Description | Default | Max |
823 | | ---------- | ---------------------------------------------- | ------- | ------- |
824 | | `offset` | Starting point for pagination | 0 | - |
825 | | `limit` | Maximum number of results to return | 10 | 1000 |
826 |
827 |
828 |
829 |
830 |
831 | Response Schema
832 |
833 |
834 | ```json
835 | {
836 | "history": [
837 | {
838 | "epoch": 0,
839 | "blocks": 0,
840 | "fees": 0
841 | }
842 | ],
843 | "pagination": {
844 | "total": 0,
845 | "offset": 0,
846 | "limit": 0
847 | }
848 | }
849 | ```
850 |
851 |
852 |
853 | #### `GET /validator/:nodepubkey/success-rate-history`
854 | **Fetch validator success rate history**
855 |
856 | Returns historical success rate data for a specific validator.
857 |
858 |
859 | Query Options
860 |
861 |
862 | | Parameter | Description | Default | Max |
863 | | ---------- | ---------------------------------------------- | ------- | ------- |
864 | | `offset` | Starting point for pagination | 0 | - |
865 | | `limit` | Maximum number of results to return | 10 | 1000 |
866 |
867 |
868 |
869 |
870 |
871 | Response Schema
872 |
873 |
874 | ```json
875 | {
876 | "history": [
877 | {
878 | "epoch": 0,
879 | "slots": 0,
880 | "blocks": 0,
881 | "successRate": 0
882 | }
883 | ],
884 | "pagination": {
885 | "total": 0,
886 | "offset": 0,
887 | "limit": 0
888 | }
889 | }
890 | ```
891 |
892 |
893 |
894 | #### `GET /validator/:votepubkey/stake-accounts-history`
895 | **Fetch validator stake accounts history**
896 |
897 | Returns historical stake accounts data for a specific validator.
898 |
899 |
900 | Query Options
901 |
902 |
903 | | Parameter | Description | Default | Max |
904 | | ---------- | ---------------------------------------------- | ------- | ------- |
905 | | `offset` | Starting point for pagination | 0 | - |
906 | | `limit` | Maximum number of results to return | 10 | 1000 |
907 |
908 |
909 |
910 |
911 |
912 | Response Schema
913 |
914 |
915 | ```json
916 | {
917 | "history": [
918 | {
919 | "epoch": 0,
920 | "stakeAccounts": 0
921 | }
922 | ],
923 | "pagination": {
924 | "total": 0,
925 | "offset": 0,
926 | "limit": 0
927 | }
928 | }
929 | ```
930 |
931 |
932 |
933 | #### `GET /validator/:votepubkey/stake-history`
934 | **Fetch validator stake history**
935 |
936 | Returns historical stake data for a specific validator.
937 |
938 |
939 | Query Options
940 |
941 |
942 | | Parameter | Description | Default | Max |
943 | | ---------- | ---------------------------------------------- | ------- | ------- |
944 | | `offset` | Starting point for pagination | 0 | - |
945 | | `limit` | Maximum number of results to return | 10 | 1000 |
946 |
947 |
948 |
949 |
950 |
951 | Response Schema
952 |
953 |
954 | ```json
955 | {
956 | "history": [
957 | {
958 | "epoch": 0,
959 | "activatedStake": 0
960 | }
961 | ],
962 | "pagination": {
963 | "total": 0,
964 | "offset": 0,
965 | "limit": 0
966 | }
967 | }
968 | ```
969 |
970 |
971 |
972 | #### `GET /cluster-block-rewards-history`
973 | **Fetch cluster block rewards history**
974 |
975 | Returns aggregated block rewards history for the entire cluster.
976 |
977 |
978 | Query Options
979 |
980 |
981 | | Parameter | Description | Default | Max |
982 | | ------ | ---------------------------------------------- | ------- | ------- |
983 | | `offset` | Starting point for pagination | 0 | - |
984 | | `limit` | Maximum number of results to return | 10 | 1000 |
985 |
986 |
987 |
988 |
989 |
990 | Response Schema
991 |
992 |
993 | ```json
994 | {
995 | "history": [
996 | {
997 | "epoch": 0,
998 | "blocks": 0,
999 | "fees": 0
1000 | }
1001 | ],
1002 | "pagination": {
1003 | "total": 0,
1004 | "offset": 0,
1005 | "limit": 0
1006 | }
1007 | }
1008 | ```
1009 |
1010 |
1011 |
1012 | #### `GET /cluster-success-rate-history`
1013 | **Fetch cluster success rate history**
1014 |
1015 | Returns aggregated success rate history for the entire cluster.
1016 |
1017 |
1018 | Query Options
1019 |
1020 |
1021 | | Parameter | Description | Default | Max |
1022 | | ------ | ---------------------------------------------- | ------- | ------- |
1023 | | `offset` | Starting point for pagination | 0 | - |
1024 | | `limit` | Maximum number of results to return | 10 | 1000 |
1025 |
1026 |
1027 |
1028 |
1029 |
1030 | Response Schema
1031 |
1032 |
1033 | ```json
1034 | {
1035 | "history": [
1036 | {
1037 | "epoch": 0,
1038 | "slots": 0,
1039 | "blocks": 0,
1040 | "success_rate": 0
1041 | }
1042 | ],
1043 | "pagination": {
1044 | "total": 0,
1045 | "offset": 0,
1046 | "limit": 0
1047 | }
1048 | }
1049 | ```
1050 |
1051 |
1052 |
1053 | #### `GET /validator/:votepubkey`
1054 | **Fetch validator details**
1055 |
1056 | Returns general details about a specific validator.
1057 |
1058 |
1059 | Query Options
1060 |
1061 |
1062 | | Parameter | Description |
1063 | | ---------- | ---------------------------- |
1064 | | `votepubkey` | The validator's vote public key |
1065 |
1066 |
1067 |
1068 |
1069 |
1070 | Response Schema
1071 |
1072 |
1073 | ```json
1074 | {
1075 | "votePubkey": "string",
1076 | "nodePubkey": "string",
1077 | "commission": 0,
1078 | "lastVote": "number",
1079 | "delinquent": "true | false",
1080 | "name": "string",
1081 | "iconUrl": "string",
1082 | "website": "string",
1083 | "details": "string",
1084 | "version": "string",
1085 | "continent": "string",
1086 | "country": "string",
1087 | "region": "string",
1088 | "city": "string",
1089 | "asn": 0,
1090 | "asnOrganization": "string"
1091 | }
1092 | ```
1093 |
1094 |
1095 |
1096 | ---
1097 |
1098 |
1099 | ### 📈 Validators Data
1100 |
1101 | #### `GET /skip-rates`
1102 | **Fetch validator skip rates**
1103 |
1104 | Returns skip rate data for validators.
1105 |
1106 |
1107 | Response Schema
1108 |
1109 |
1110 | ```json
1111 | {
1112 | "skipRate": 0,
1113 | "stakeWeightedSkipRate": 0
1114 | }
1115 | ```
1116 |
1117 |
1118 |
1119 | #### `GET /staking-yield`
1120 | **Fetch staking yield data**
1121 |
1122 | Returns staking yield data.
1123 |
1124 |
1125 | Response Schema
1126 |
1127 |
1128 | ```json
1129 | {
1130 | "inflationRate": 0,
1131 | "effectiveInflationRate": 0,
1132 | "inflationRewardsApy": 0,
1133 | "blockRewardsApy": 0
1134 | }
1135 | ```
1136 |
1137 |
1138 |
1139 | #### `GET /node-versions`
1140 | **Fetch node version distribution**
1141 |
1142 | Returns node version distribution data.
1143 |
1144 |
1145 | Response Schema
1146 |
1147 |
1148 | ```json
1149 | [
1150 | {
1151 | "version": "string",
1152 | "stake": "number"
1153 | }
1154 | ]
1155 | ```
1156 |
1157 |
1158 |
1159 | #### `GET /validator-list`
1160 | **Fetch paginated list of validators**
1161 |
1162 | Returns a paginated list of validators.
1163 |
1164 |
1165 | Query Options
1166 |
1167 |
1168 | | Parameter | Description | Default | Max |
1169 | | ------ | ---------------------------------------------- | ------- | ------- |
1170 | | `offset` | Starting position in the validator list | 0 | - |
1171 | | `limit` | Maximum number of validators to return | 50 | 100 |
1172 |
1173 |
1174 |
1175 |
1176 |
1177 | Response Schema
1178 |
1179 |
1180 | ```json
1181 | {
1182 | "validators": [
1183 | {
1184 | "votePubkey": "string",
1185 | "name": "string",
1186 | "iconUrl": "string",
1187 | "version": "string",
1188 | "activatedStake": "number",
1189 | "stakeAccounts": "number",
1190 | "commission": 0,
1191 | "lastVote": "number",
1192 | "delinquent": "true | false"
1193 | }
1194 | ],
1195 | "pagination": {
1196 | "total": "number",
1197 | "offset": "number",
1198 | "limit": "number"
1199 | }
1200 | }
1201 | ```
1202 |
1203 |
1204 |
1205 | ---
1206 |
1207 | ## 🧡 We appreciate your delegation
1208 |
1209 | If you're satisfied with this product consider choosing the Solana Beach Validator next time you are confronted with the decision where to delegate.
1210 |
--------------------------------------------------------------------------------
/solanabeach.svg:
--------------------------------------------------------------------------------
1 |
65 |
--------------------------------------------------------------------------------