openapi: 3.1.0 info: title: BscScan API version: 1.0.0 description: BscScan is the leading block explorer and analytics platform for BNB Smart Chain (BSC), providing a REST API for querying transactions, token transfers, smart contract ABIs, gas prices, BEP-20 token information, and on-chain statistics. API subscriptions are unified under the Etherscan V2 platform, enabling access to 60+ EVM chains via a single API key using the chainid parameter (BSC chainid=56). license: name: UNLICENSED url: https://docs.bscscan.com/ servers: - url: https://api.bscscan.com/v2/api description: BscScan BNB Smart Chain Mainnet (Etherscan V2, chainid=56) - url: https://api-testnet.bscscan.com/api description: BscScan BNB Smart Chain Testnet security: - apiKeyAuth: [] tags: - name: Accounts - name: Contracts - name: Transactions - name: Blocks - name: Logs - name: Geth/Parity Proxy - name: Tokens - name: Gas Tracker - name: Stats - name: API PRO Endpoints externalDocs: url: https://docs.bscscan.com/ paths: /?module=account&action=balance: get: operationId: get-ether-balance-for-a-single-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-ether-balance-for-a-single-address summary: Get Ether Balance for a Single Address description: Returns the Ether balance of a given address. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae' - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: 'Operation result. 📖 Tip: The result is returned in wei.Convert Ethereum units using our Unit Converter.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.balance' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '40891626854930000000000' /?module=account&action=balancemulti: get: operationId: get-ether-balance-for-multiple-addresses-in-a-single-call externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-ether-balance-for-multiple-addresses-in-a-single-call summary: Get Ether Balance for Multiple Addresses in a Single Call description: Returns the balance of the accounts from a list of addresses. tags: - Accounts parameters: - in: query name: address schema: type: array items: $ref: '#/components/schemas/AddressHash' maxItems: 20 style: form explode: false example: 0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a,0x63a9975ba31b0b9626b34300f7f627147df1f526,0x198ef1ec325a96cc354c7266a038be8b5c558f67 - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: 'Operation result. 📖 Tip: The result is returned in wei.Convert Ethereum units using our Unit Converter.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.balancemulti' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - account: '0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a' balance: '40891626854930000000000' - account: '0x63a9975ba31b0b9626b34300f7f627147df1f526' balance: '332567136222827062478' - account: '0x198ef1ec325a96cc354c7266a038be8b5c558f67' balance: '0' /?module=account&action=txlist: get: operationId: get-a-list-of-normal-transactions-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-a-list-of-normal-transactions-by-address summary: Get a list of 'Normal' Transactions By Address description: 'Returns the list of transactions performed by an address, with optional pagination. ​​ ​ 📝 Note : This API endpoint returns a maximum of 10000 records only.' tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '99999999' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '10' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '14923678' timeStamp: '1654646411' hash: '0xc52783ad354aecc04c670047754f062e3d6d04e8f5b24774472651f9c3882c60' nonce: '1' blockHash: '0x7e1638fd2c6bdd05ffd83c1cf06c63e2f67d0f802084bef076d06bdcf86d1bb0' transactionIndex: '61' from: '0x9aa99c23f67c81701c772b106b4f83f6e858dd2e' to: '' value: '0' gas: '6000000' gasPrice: '83924748773' isError: '0' txreceipt_status: '1' input: '0x6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140908152503480156200003a57600080fd5b5060405162005ddb38038062005ddb833981810160405281019062000060919062000d70565b6040518060400160405280600381526020017f486f700000000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f486f7000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f484f50000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200015192919062000ca9565b5080600490805190602001906200016a92919062000ca9565b50505060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250504660a08181525050620001d68184846200027760201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508061012081815250505050505050506200024362000237620002b360201b60201c565b620002bb60201b60201c565b6200025533846200038160201b60201c565b6200026730836200038160201b60201c565b80600b81905550505050620012b3565b600083838346306040516020016200029495949392919062000e9b565b6040516020818303038152906040528051906020012090509392505050565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200039882826200039c60201b620017a81760201c565b5050565b620003b382826200045a60201b620018351760201c565b620003c3620005d360201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16620003f1620005f760201b60201c565b111562000435576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042c9062000ef8565b60405180910390fd5b6200045460086200060160201b6200199517836200061960201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004c49062000f5e565b60405180910390fd5b620004e160008383620008ca60201b60201c565b8060026000828254620004f5919062000fdb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200054c919062000fdb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005b3919062000f80565b60405180910390a3620005cf60008383620008cf60201b60201c565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000600254905090565b6000818362000611919062000fdb565b905092915050565b600080600085805490509050600081146200068e57856001826200063e919062001038565b815481106200065257620006516200114f565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1662000691565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250620006bd83858760201c565b91506000811180156200071657504386600183620006dc919062001038565b81548110620006f057620006ef6200114f565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b15620007b7576200073282620008ec60201b620019ab1760201c565b8660018362000742919062001038565b815481106200075657620007556200114f565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550620008c1565b856040518060400160405280620007d9436200095a60201b62001a161760201c565b63ffffffff168152602001620007fa85620008ec60201b620019ab1760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b505050565b620008e7838383620009b060201b62001a691760201c565b505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009499062000f1a565b60405180910390fd5b819050919050565b600063ffffffff8016821115620009a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099f9062000f3c565b60405180910390fd5b819050919050565b620009c883838362000a0060201b62001a941760201c565b620009fb620009dd8462000a0560201b60201c565b620009ee8462000a0560201b60201c565b8362000a6e60201b60201c565b505050565b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000aab5750600081115b1562000c8c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b9e5760008062000b45600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002062000c9160201b62001a9917856200061960201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000b9392919062000f9d565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000c8b5760008062000c32600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206200060160201b6200199517856200061960201b60201c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000c8092919062000f9d565b60405180910390a250505b5b505050565b6000818362000ca1919062001038565b905092915050565b82805462000cb790620010bb565b90600052602060002090601f01602090048101928262000cdb576000855562000d27565b82601f1062000cf657805160ff191683800117855562000d27565b8280016001018555821562000d27579182015b8281111562000d2657825182559160200191906001019062000d09565b5b50905062000d36919062000d3a565b5090565b5b8082111562000d5557600081600090555060010162000d3b565b5090565b60008151905062000d6a8162001299565b92915050565b60008060006060848603121562000d8c5762000d8b6200117e565b5b600062000d9c8682870162000d59565b935050602062000daf8682870162000d59565b925050604062000dc28682870162000d59565b9150509250925092565b62000dd78162001073565b82525050565b62000de88162001087565b82525050565b600062000dfd60308362000fca565b915062000e0a8262001183565b604082019050919050565b600062000e2460278362000fca565b915062000e3182620011d2565b604082019050919050565b600062000e4b60268362000fca565b915062000e588262001221565b604082019050919050565b600062000e72601f8362000fca565b915062000e7f8262001270565b602082019050919050565b62000e9581620010b1565b82525050565b600060a08201905062000eb2600083018862000ddd565b62000ec1602083018762000ddd565b62000ed0604083018662000ddd565b62000edf606083018562000e8a565b62000eee608083018462000dcc565b9695505050505050565b6000602082019050818103600083015262000f138162000dee565b9050919050565b6000602082019050818103600083015262000f358162000e15565b9050919050565b6000602082019050818103600083015262000f578162000e3c565b9050919050565b6000602082019050818103600083015262000f798162000e63565b9050919050565b600060208201905062000f97600083018462000e8a565b92915050565b600060408201905062000fb4600083018562000e8a565b62000fc3602083018462000e8a565b9392505050565b600082825260208201905092915050565b600062000fe882620010b1565b915062000ff583620010b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200102d576200102c620010f1565b5b828201905092915050565b60006200104582620010b1565b91506200105283620010b1565b925082821015620010685762001067620010f1565b5b828203905092915050565b6000620010808262001091565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620010d457607f821691505b60208210811415620010eb57620010ea62001120565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620012a481620010b1565b8114620012b057600080fd5b50565b60805160a05160c05160601c60e051610100516101205161014051614aca62001311600039600061141e0152600061203d0152600061207f0152600061205e01526000611f9301526000611fe9015260006120120152614aca6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a5780639ab24eb0116100ad578063c3cda5201161007c578063c3cda52014610612578063d505accf1461062e578063dd62ed3e1461064a578063f1127ed81461067a578063f2fde38b146106aa576101fb565b80639ab24eb0146105525780639e34070f14610582578063a457c2d7146105b2578063a9059cbb146105e2576101fb565b80637ecebe00116100e95780637ecebe00146104b65780638da5cb5b146104e65780638e539e8c1461050457806395d89b4114610534576101fb565b806370a0823114610444578063715018a614610474578063761229031461047e5780637cb647591461049a576101fb565b80633950935111610192578063587cde1e11610161578063587cde1e146103aa5780635c19a95c146103da57806366deac47146103f65780636fcfff4514610414576101fb565b806339509351146103125780633a46b1a81461034257806340c10f191461037257806342966c681461038e576101fb565b806323b872dd116101ce57806323b872dd146102885780632eb4a7ab146102b8578063313ce567146102d65780633644e515146102f4576101fb565b806301681a621461020057806306fdde031461021c578063095ea7b31461023a57806318160ddd1461026a575b600080fd5b61021a600480360381019061021591906130df565b6106c6565b005b61022461079c565b6040516102319190613b56565b60405180910390f35b610254600480360381019061024f9190613241565b61082e565b60405161026191906139e2565b60405180910390f35b610272610851565b60405161027f9190613f13565b60405180910390f35b6102a2600480360381019061029d919061314c565b61085b565b6040516102af91906139e2565b60405180910390f35b6102c061088a565b6040516102cd91906139fd565b60405180910390f35b6102de610890565b6040516102eb9190613f72565b60405180910390f35b6102fc610899565b60405161030991906139fd565b60405180910390f35b61032c60048036038101906103279190613241565b6108a8565b60405161033991906139e2565b60405180910390f35b61035c60048036038101906103579190613241565b610952565b6040516103699190613f13565b60405180910390f35b61038c60048036038101906103879190613241565b6109e6565b005b6103a860048036038101906103a3919061337b565b610a70565b005b6103c460048036038101906103bf91906130df565b610b00565b6040516103d191906139c7565b60405180910390f35b6103f460048036038101906103ef91906130df565b610b69565b005b6103fe610b7d565b60405161040b9190613f13565b60405180910390f35b61042e600480360381019061042991906130df565b610b83565b60405161043b9190613f57565b60405180910390f35b61045e600480360381019061045991906130df565b610bd7565b60405161046b9190613f13565b60405180910390f35b61047c610c1f565b005b610498600480360381019061049391906133a8565b610ca7565b005b6104b460048036038101906104af919061334e565b610e32565b005b6104d060048036038101906104cb91906130df565b610f36565b6040516104dd9190613f13565b60405180910390f35b6104ee610f86565b6040516104fb91906139c7565b60405180910390f35b61051e6004803603810190610519919061337b565b610fb0565b60405161052b9190613f13565b60405180910390f35b61053c611006565b6040516105499190613b56565b60405180910390f35b61056c600480360381019061056791906130df565b611098565b6040516105799190613f13565b60405180910390f35b61059c6004803603810190610597919061337b565b6111a9565b6040516105a991906139e2565b60405180910390f35b6105cc60048036038101906105c79190613241565b6111c6565b6040516105d991906139e2565b60405180910390f35b6105fc60048036038101906105f79190613241565b6112b0565b60405161060991906139e2565b60405180910390f35b61062c60048036038101906106279190613281565b6112d3565b005b6106486004803603810190610643919061319f565b6113d7565b005b610664600480360381019061065f919061310c565b611519565b6040516106719190613f13565b60405180910390f35b610694600480360381019061068f919061330e565b6115a0565b6040516106a19190613ef8565b60405180910390f35b6106c460048036038101906106bf91906130df565b6116b0565b005b6106ce611aaf565b73ffffffffffffffffffffffffffffffffffffffff166106ec610f86565b73ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990613dd8565b60405180910390fd5b600b544211610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90613d58565b60405180910390fd5b610799308261079430610bd7565b611ab7565b50565b6060600380546107ab90614193565b80601f01602080910402602001604051908101604052809291908181526020018280546107d790614193565b80156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b600080610839611aaf565b9050610846818585611d38565b600191505092915050565b6000600254905090565b600080610866611aaf565b9050610873858285611f03565b61087e858585611ab7565b60019150509392505050565b600a5481565b60006012905090565b60006108a3611f8f565b905090565b6000806108b3611aaf565b9050610947818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109429190613fb4565b611d38565b600191505092915050565b6000438210610996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098d90613bb8565b60405180910390fd5b6109de600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836120a9565b905092915050565b6109ee611aaf565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610f86565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5990613dd8565b60405180910390fd5b610a6c82826121b5565b5050565b610a78611aaf565b73ffffffffffffffffffffffffffffffffffffffff16610a96610f86565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390613dd8565b60405180910390fd5b610afd610af7610f86565b826121c3565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610b7a610b74611aaf565b826121d1565b50565b600b5481565b6000610bd0600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611a16565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c27611aaf565b73ffffffffffffffffffffffffffffffffffffffff16610c45610f86565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290613dd8565b60405180910390fd5b610ca560006122eb565b565b60003385604051602001610cbc929190613938565b604051602081830303815290604052805190602001209050600080610d25858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600a54856123b1565b9150915081610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090613bd8565b60405180910390fd5b610d72816111a9565b15610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990613df8565b60405180910390fd5b610dc681600c61248d90919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d488604051610e0c9190613f13565b60405180910390a2610e1e33876121d1565b610e29303389611ab7565b50505050505050565b610e3a611aaf565b73ffffffffffffffffffffffffffffffffffffffff16610e58610f86565b73ffffffffffffffffffffffffffffffffffffffff1614610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590613dd8565b60405180910390fd5b6000801b600a5414610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eec90613c38565b60405180910390fd5b80600a819055507f1b930366dfeaa7eb3b325021e4ae81e36527063452ee55b86c95f85b36f4c31c81604051610f2b91906139fd565b60405180910390a150565b6000610f7f600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206124cb565b9050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000438210610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90613bb8565b60405180910390fd5b610fff6008836120a9565b9050919050565b60606004805461101590614193565b80601f016020809104026020016040519081016040528092919081815260200182805461104190614193565b801561108e5780601f106110635761010080835404028352916020019161108e565b820191906000526020600020905b81548152906001019060200180831161107157829003601f168201915b5050505050905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811461118057600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001826111349190614095565b8154811061114557611144614302565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611183565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b60006111bf82600c6124d990919063ffffffff16565b9050919050565b6000806111d1611aaf565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613eb8565b60405180910390fd5b6112a48286868403611d38565b60019250505092915050565b6000806112bb611aaf565b90506112c8818585611ab7565b600191505092915050565b83421115611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90613bf8565b60405180910390fd5b60006113786113707fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8989896040516020016113559493929190613a79565b60405160208183030381529060405280519060200120612515565b85858561252f565b90506113838161255a565b86146113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90613c78565b60405180910390fd5b6113ce81886121d1565b50505050505050565b8342111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613cf8565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000008888886114498c61255a565b8960405160200161145f96959493929190613a18565b604051602081830303815290604052805190602001209050600061148282612515565b905060006114928287878761252f565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f990613d98565b60405180910390fd5b61150d8a8a8a611d38565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115a8612fe2565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff16815481106115ff576115fe614302565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6116b8611aaf565b73ffffffffffffffffffffffffffffffffffffffff166116d6610f86565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390613dd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390613c98565b60405180910390fd5b6117a5816122eb565b50565b6117b28282611835565b6117ba6125b8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166117e0610851565b1115611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890613db8565b60405180910390fd5b61182f6008611995836125dc565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613ed8565b60405180910390fd5b6118b160008383612854565b80600260008282546118c39190613fb4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119189190613fb4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197d9190613f13565b60405180910390a361199160008383612859565b5050565b600081836119a39190613fb4565b905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016821115611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0590613e18565b60405180910390fd5b819050919050565b600063ffffffff8016821115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613e78565b60405180910390fd5b819050919050565b611a74838383611a94565b611a8f611a8084610b00565b611a8984610b00565b83612869565b505050565b505050565b60008183611aa79190614095565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e90613b98565b60405180910390fd5b611ba2838383612854565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90613d18565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cbb9190613fb4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1f9190613f13565b60405180910390a3611d32848484612859565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9f90613e98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f90613cb8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ef69190613f13565b60405180910390a3505050565b6000611f0f8484611519565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f895781811015611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613cd8565b60405180910390fd5b611f888484848403611d38565b5b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561200b57507f000000000000000000000000000000000000000000000000000000000000000046145b15612038577f000000000000000000000000000000000000000000000000000000000000000090506120a6565b6120a37f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612a62565b90505b90565b6000808380549050905060005b818110156121285760006120ca8284612a9c565b9050848682815481106120e0576120df614302565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16111561211257809250612122565b60018161211f9190613fb4565b91505b506120b6565b6000821461218a578460018361213e9190614095565b8154811061214f5761214e614302565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661218d565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250505092915050565b6121bf82826117a8565b5050565b6121cd8282612ac2565b5050565b60006121dc83610b00565b905060006121e984610bd7565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46122e5828483612869565b50505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060008390506000805b875181101561247a576002826123d3919061403b565b915060008882815181106123ea576123e9614302565b5b6020026020010151905080841161242b57838160405160200161240e929190613964565b604051602081830303815290604052805190602001209350612466565b808460405160200161243e929190613964565b6040516020818303038152906040528051906020012093506001836124639190613fb4565b92505b508080612472906141c5565b9150506123bd565b5085821481935093505050935093915050565b6000600882901c9050600060ff83166001901b9050808460000160008481526020019081526020016000206000828254179250508190555050505050565b600081600001549050919050565b600080600883901c9050600060ff84166001901b9050600081866000016000858152602001908152602001600020541614159250505092915050565b6000612528612522611f8f565b83612ae0565b9050919050565b600080600061254087878787612b13565b9150915061254d81612c20565b8192505050949350505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506125a7816124cb565b91506125b281612df5565b50919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000806000858054905090506000811461264a57856001826125fe9190614095565b8154811061260f5761260e614302565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661264d565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925061267b83858763ffffffff16565b91506000811180156126ce575043866001836126979190614095565b815481106126a8576126a7614302565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b1561275b576126dc826119ab565b866001836126ea9190614095565b815481106126fb576126fa614302565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061284b565b85604051806040016040528061277043611a16565b63ffffffff168152602001612784856119ab565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b505050565b612864838383611a69565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156128a55750600081115b15612a5d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146129835760008061292c600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611a99856125dc565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612978929190613f2e565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a5c57600080612a05600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611995856125dc565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612a51929190613f2e565b60405180910390a250505b5b505050565b60008383834630604051602001612a7d959493929190613abe565b6040516020818303038152906040528051906020012090509392505050565b60006002828418612aad919061400a565b828416612aba9190613fb4565b905092915050565b612acc8282612e0b565b612ada6008611a99836125dc565b50505050565b60008282604051602001612af5929190613990565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612b4e576000600391509150612c17565b601b8560ff1614158015612b665750601c8560ff1614155b15612b78576000600491509150612c17565b600060018787878760405160008152602001604052604051612b9d9493929190613b11565b6020604051602081039080840390855afa158015612bbf573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c0e57600060019250925050612c17565b80600092509250505b94509492505050565b60006004811115612c3457612c336142a4565b5b816004811115612c4757612c466142a4565b5b1415612c5257612df2565b60016004811115612c6657612c656142a4565b5b816004811115612c7957612c786142a4565b5b1415612cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb190613b78565b60405180910390fd5b60026004811115612cce57612ccd6142a4565b5b816004811115612ce157612ce06142a4565b5b1415612d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1990613c58565b60405180910390fd5b60036004811115612d3657612d356142a4565b5b816004811115612d4957612d486142a4565b5b1415612d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8190613d38565b60405180910390fd5b600480811115612d9d57612d9c6142a4565b5b816004811115612db057612daf6142a4565b5b1415612df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de890613d78565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7290613e38565b60405180910390fd5b612e8782600083612854565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0490613c18565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254612f649190614095565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fc99190613f13565b60405180910390a3612fdd83600084612859565b505050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b60008135905061302f81614a21565b92915050565b60008083601f84011261304b5761304a614336565b5b8235905067ffffffffffffffff81111561306857613067614331565b5b6020830191508360208202830111156130845761308361433b565b5b9250929050565b60008135905061309a81614a38565b92915050565b6000813590506130af81614a4f565b92915050565b6000813590506130c481614a66565b92915050565b6000813590506130d981614a7d565b92915050565b6000602082840312156130f5576130f4614345565b5b600061310384828501613020565b91505092915050565b6000806040838503121561312357613122614345565b5b600061313185828601613020565b925050602061314285828601613020565b9150509250929050565b60008060006060848603121561316557613164614345565b5b600061317386828701613020565b935050602061318486828701613020565b9250506040613195868287016130a0565b9150509250925092565b600080600080600080600060e0888a0312156131be576131bd614345565b5b60006131cc8a828b01613020565b97505060206131dd8a828b01613020565b96505060406131ee8a828b016130a0565b95505060606131ff8a828b016130a0565b94505060806132108a828b016130ca565b93505060a06132218a828b0161308b565b92505060c06132328a828b0161308b565b91505092959891949750929550565b6000806040838503121561325857613257614345565b5b600061326685828601613020565b9250506020613277858286016130a0565b9150509250929050565b60008060008060008060c0878903121561329e5761329d614345565b5b60006132ac89828a01613020565b96505060206132bd89828a016130a0565b95505060406132ce89828a016130a0565b94505060606132df89828a016130ca565b93505060806132f089828a0161308b565b92505060a061330189828a0161308b565b9150509295509295509295565b6000806040838503121561332557613324614345565b5b600061333385828601613020565b9250506020613344858286016130b5565b9150509250929050565b60006020828403121561336457613363614345565b5b60006133728482850161308b565b91505092915050565b60006020828403121561339157613390614345565b5b600061339f848285016130a0565b91505092915050565b600080600080606085870312156133c2576133c1614345565b5b60006133d0878288016130a0565b94505060206133e187828801613020565b935050604085013567ffffffffffffffff81111561340257613401614340565b5b61340e87828801613035565b925092505092959194509250565b613425816140c9565b82525050565b61343c613437826140c9565b61420e565b82525050565b61344b816140db565b82525050565b61345a816140e7565b82525050565b61347161346c826140e7565b614220565b82525050565b600061348282613f8d565b61348c8185613f98565b935061349c818560208601614160565b6134a58161434a565b840191505092915050565b60006134bd601883613f98565b91506134c882614368565b602082019050919050565b60006134e0602383613f98565b91506134eb82614391565b604082019050919050565b6000613503601f83613f98565b915061350e826143e0565b602082019050919050565b6000613526601a83613f98565b915061353182614409565b602082019050919050565b6000613549601d83613f98565b915061355482614432565b602082019050919050565b600061356c602283613f98565b91506135778261445b565b604082019050919050565b600061358f601c83613f98565b915061359a826144aa565b602082019050919050565b60006135b2601f83613f98565b91506135bd826144d3565b602082019050919050565b60006135d5601983613f98565b91506135e0826144fc565b602082019050919050565b60006135f8602683613f98565b915061360382614525565b604082019050919050565b600061361b602283613f98565b915061362682614574565b604082019050919050565b600061363e600283613fa9565b9150613649826145c3565b600282019050919050565b6000613661601d83613f98565b915061366c826145ec565b602082019050919050565b6000613684601d83613f98565b915061368f82614615565b602082019050919050565b60006136a7602683613f98565b91506136b28261463e565b604082019050919050565b60006136ca602283613f98565b91506136d58261468d565b604082019050919050565b60006136ed601f83613f98565b91506136f8826146dc565b602082019050919050565b6000613710602283613f98565b915061371b82614705565b604082019050919050565b6000613733601e83613f98565b915061373e82614754565b602082019050919050565b6000613756603083613f98565b91506137618261477d565b604082019050919050565b6000613779602083613f98565b9150613784826147cc565b602082019050919050565b600061379c601c83613f98565b91506137a7826147f5565b602082019050919050565b60006137bf602783613f98565b91506137ca8261481e565b604082019050919050565b60006137e2602183613f98565b91506137ed8261486d565b604082019050919050565b6000613805602583613f98565b9150613810826148bc565b604082019050919050565b6000613828602683613f98565b91506138338261490b565b604082019050919050565b600061384b602483613f98565b91506138568261495a565b604082019050919050565b600061386e602583613f98565b9150613879826149a9565b604082019050919050565b6000613891601f83613f98565b915061389c826149f8565b602082019050919050565b6040820160008201516138bd600085018261390b565b5060208201516138d060208501826138d6565b50505050565b6138df81614111565b82525050565b6138ee81614139565b82525050565b61390561390082614139565b61423c565b82525050565b61391481614143565b82525050565b61392381614143565b82525050565b61393281614153565b82525050565b6000613944828561342b565b60148201915061395482846138f4565b6020820191508190509392505050565b60006139708285613460565b6020820191506139808284613460565b6020820191508190509392505050565b600061399b82613631565b91506139a78285613460565b6020820191506139b78284613460565b6020820191508190509392505050565b60006020820190506139dc600083018461341c565b92915050565b60006020820190506139f76000830184613442565b92915050565b6000602082019050613a126000830184613451565b92915050565b600060c082019050613a2d6000830189613451565b613a3a602083018861341c565b613a47604083018761341c565b613a5460608301866138e5565b613a6160808301856138e5565b613a6e60a08301846138e5565b979650505050505050565b6000608082019050613a8e6000830187613451565b613a9b602083018661341c565b613aa860408301856138e5565b613ab560608301846138e5565b95945050505050565b600060a082019050613ad36000830188613451565b613ae06020830187613451565b613aed6040830186613451565b613afa60608301856138e5565b613b07608083018461341c565b9695505050505050565b6000608082019050613b266000830187613451565b613b336020830186613929565b613b406040830185613451565b613b4d6060830184613451565b95945050505050565b60006020820190508181036000830152613b708184613477565b905092915050565b60006020820190508181036000830152613b91816134b0565b9050919050565b60006020820190508181036000830152613bb1816134d3565b9050919050565b60006020820190508181036000830152613bd1816134f6565b9050919050565b60006020820190508181036000830152613bf181613519565b9050919050565b60006020820190508181036000830152613c118161353c565b9050919050565b60006020820190508181036000830152613c318161355f565b9050919050565b60006020820190508181036000830152613c5181613582565b9050919050565b60006020820190508181036000830152613c71816135a5565b9050919050565b60006020820190508181036000830152613c91816135c8565b9050919050565b60006020820190508181036000830152613cb1816135eb565b9050919050565b60006020820190508181036000830152613cd18161360e565b9050919050565b60006020820190508181036000830152613cf181613654565b9050919050565b60006020820190508181036000830152613d1181613677565b9050919050565b60006020820190508181036000830152613d318161369a565b9050919050565b60006020820190508181036000830152613d51816136bd565b9050919050565b60006020820190508181036000830152613d71816136e0565b9050919050565b60006020820190508181036000830152613d9181613703565b9050919050565b60006020820190508181036000830152613db181613726565b9050919050565b60006020820190508181036000830152613dd181613749565b9050919050565b60006020820190508181036000830152613df18161376c565b9050919050565b60006020820190508181036000830152613e118161378f565b9050919050565b60006020820190508181036000830152613e31816137b2565b9050919050565b60006020820190508181036000830152613e51816137d5565b9050919050565b60006020820190508181036000830152613e71816137f8565b9050919050565b60006020820190508181036000830152613e918161381b565b9050919050565b60006020820190508181036000830152613eb18161383e565b9050919050565b60006020820190508181036000830152613ed181613861565b9050919050565b60006020820190508181036000830152613ef181613884565b9050919050565b6000604082019050613f0d60008301846138a7565b92915050565b6000602082019050613f2860008301846138e5565b92915050565b6000604082019050613f4360008301856138e5565b613f5060208301846138e5565b9392505050565b6000602082019050613f6c600083018461391a565b92915050565b6000602082019050613f876000830184613929565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613fbf82614139565b9150613fca83614139565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613fff57613ffe614246565b5b828201905092915050565b600061401582614139565b915061402083614139565b9250826140305761402f614275565b5b828204905092915050565b600061404682614139565b915061405183614139565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561408a57614089614246565b5b828202905092915050565b60006140a082614139565b91506140ab83614139565b9250828210156140be576140bd614246565b5b828203905092915050565b60006140d4826140f1565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b8381101561417e578082015181840152602081019050614163565b8381111561418d576000848401525b50505050565b600060028204905060018216806141ab57607f821691505b602082108114156141bf576141be6142d3565b5b50919050565b60006141d082614139565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561420357614202614246565b5b600182019050919050565b60006142198261422a565b9050919050565b6000819050919050565b60006142358261435b565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b7f484f503a2056616c69642070726f6f662072657175697265642e000000000000600082015250565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f484f503a204d65726b6c6520726f6f7420616c72656164792073657400000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f484f503a20436c61696d20706572696f64206e6f742079657420656e64656400600082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f484f503a20546f6b656e7320616c726561647920636c61696d65642e00000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b614a2a816140c9565b8114614a3557600080fd5b50565b614a41816140e7565b8114614a4c57600080fd5b50565b614a5881614139565b8114614a6357600080fd5b50565b614a6f81614143565b8114614a7a57600080fd5b50565b614a8681614153565b8114614a9157600080fd5b5056fea2646970667358221220f6ac0f9b7be284957c471924efd5c5c2c2364146e9216e4365ec0870f955dce864736f6c634300080700330000000000000000000000000000000000000000030dd5e3217b0bbfacdaca690000000000000000000000000000000000000000002d58597e55747d3b253597000000000000000000000000000000000000000000000000000000006392c0d0' contractAddress: '0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc' cumulativeGasUsed: '10450178' gasUsed: '4457269' confirmations: '122485' methodId: '0x61016060' functionName: '' - blockNumber: '14923692' timeStamp: '1654646570' hash: '0xaa45b4858ba44230a5fce5a29570a5dec2bf1f0ba95bacdec4fe8f2c4fa99338' nonce: '7' blockHash: '0x8df71a12a8c06b36c06c26bf6248857dd2a2b75b6edbb4e33e9477078897b282' transactionIndex: '27' from: '0x9aa99c23f67c81701c772b106b4f83f6e858dd2e' to: '0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc' value: '0' gas: '6000000' gasPrice: '125521409858' isError: '0' txreceipt_status: '1' input: '0xa9059cbb000000000000000000000000313143c4088a47c469d06fe3fa5fd4196be6a4d600000000000000000000000000000000000000000003b8e97d229a2d54800000' contractAddress: '' cumulativeGasUsed: '1977481' gasUsed: '57168' confirmations: '122471' methodId: '0xa9059cbb' functionName: transfer(address _to, uint256 _value) /?module=account&action=txlistinternal: get: operationId: get-a-list-of-internal-transactions-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-a-list-of-internal-transactions-by-address summary: Get a list of 'Internal' Transactions by Address description: 'Returns the list of internal transactions performed by an address, with optional pagination. 📝 Note : This API endpoint returns a maximum of 10000 records only.' tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '2702578' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '10' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '2535368' timeStamp: '1477837690' hash: '0x8a1a9989bda84f80143181a68bc137ecefa64d0d4ebde45dd94fc0cf49e70cb6' from: '0x20d42f2e99a421147acf198d775395cac2e8b03d' to: '' value: '0' contractAddress: '0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3' input: '' type: create gas: '254791' gasUsed: '46750' traceId: '0' isError: '0' errCode: '' - blockNumber: '2535479' timeStamp: '1477839134' hash: '0x1a50f1dc0bc912745f7d09b988669f71d199719e2fb7592c2074ede9578032d0' from: '0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3' to: '0x20d42f2e99a421147acf198d775395cac2e8b03d' value: '100000000000000000' contractAddress: '' input: '' type: call gas: '235231' gasUsed: '0' traceId: '0' isError: '0' errCode: '' /?module=account&action=txlistinternal&get-internal-transactions-by-transaction-hash: get: operationId: get-internal-transactions-by-transaction-hash externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-internal-transactions-by-transaction-hash summary: Get 'Internal Transactions' by Transaction Hash description: 'Returns the list of internal transactions performed within a transaction. 📝 Note : This API endpoint returns a maximum of 10000 records only.' tags: - Accounts parameters: - in: query name: txhash schema: $ref: '#/components/schemas/TxHash' required: true example: '0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170' responses: '200': description: Operation result. The isError field returns 0 for successful transactions and 1 for rejected/cancelled transactions. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '1743059' timeStamp: '1466489498' from: '0x2cac6e4b11d6b58f6d3c1c9d5fe8faa89f60e5a2' to: '0x66a1c3eaf0f1ffc28d209c0763ed0ca614f3b002' value: '7106740000000000' contractAddress: '' input: '' type: call gas: '2300' gasUsed: '0' isError: '0' errCode: '' /?module=account&action=txlistinternal&get-internal-transactions-by-block-range: get: operationId: get-internal-transactions-by-block-range externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-internal-transactions-by-block-range summary: Get "Internal Transactions" by Block Range description: 'Returns the list of internal transactions performed within a block range, with optional pagination. ​​ 📝 Note : This API endpoint returns a maximum of 10000 records only.' tags: - Accounts parameters: - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '13481773' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '13491773' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '10' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. The isError field returns 0 for successful transactions and 1 for rejected/cancelled transactions. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '50107' timeStamp: '1438984016' hash: '0x3f97c969ddf71f515ce5373b1f8e76e9fd7016611d8ce455881009414301789e' from: '0x109c4f2ccc82c4d77bde15f306707320294aea3f' to: '0x881b0a4e9c55d08e31d8d3c022144d75a454211c' value: '1000000000000000000' contractAddress: '' input: '' type: call gas: '2300' gasUsed: '0' traceId: '0' isError: '1' errCode: '' - blockNumber: '50111' timeStamp: '1438984075' hash: '0x893c428fed019404f704cf4d9be977ed9ca01050ed93dccdd6c169422155586f' from: '0x109c4f2ccc82c4d77bde15f306707320294aea3f' to: '0x881b0a4e9c55d08e31d8d3c022144d75a454211c' value: '1000000000000000000' contractAddress: '' input: '' type: call gas: '2300' gasUsed: '0' traceId: '0' isError: '0' errCode: '' /?module=account&action=tokentx: get: operationId: get-a-list-of-erc20-token-transfer-events-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-a-list-of-erc20-token-transfer-events-by-address summary: Get a list of 'ERC20 - Token Transfer Events' by Address description: Returns the list of ERC-20 tokens transferred by an address, with optional filtering by token contract. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x4e83362442b8d1bec281594cea3050c8eb01311c' - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '27025780' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '4730207' timeStamp: '1513240363' hash: '0xe8c208398bd5ae8e4c237658580db56a2a94dfa0ca382c99b776fa6e7d31d5b4' nonce: '406' blockHash: '0x022c5e6a3d2487a8ccf8946a2ffb74938bf8e5c8a3f6d91b41c56378a96b5c37' from: '0x642ae78fafbb8032da552d619ad43f1d81e4dd7c' contractAddress: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2' to: '0x4e83362442b8d1bec281594cea3050c8eb01311c' value: '5901522149285533025181' tokenName: Maker tokenSymbol: MKR tokenDecimal: '18' transactionIndex: '81' gas: '940000' gasPrice: '32010000000' gasUsed: '77759' cumulativeGasUsed: '2523379' input: deprecated confirmations: '7968350' - blockNumber: '4764973' timeStamp: '1513764636' hash: '0x9c82e89b7f6a4405d11c361adb6d808d27bcd9db3b04b3fb3bc05d182bbc5d6f' nonce: '428' blockHash: '0x87a4d04a6d8fce7a149e9dc528b88dc0c781a87456910c42984bdc15930a2cac' from: '0x4e83362442b8d1bec281594cea3050c8eb01311c' contractAddress: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2' to: '0x69076e44a9c70a67d5b79d95795aba299083c275' value: '132520488141080' tokenName: Maker tokenSymbol: MKR tokenDecimal: '18' transactionIndex: '167' gas: '940000' gasPrice: '35828000000' gasUsed: '127593' cumulativeGasUsed: '6315818' input: deprecated confirmations: '7933584' /?module=account&action=tokennfttx: get: operationId: get-a-list-of-erc721-token-transfer-events-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-a-list-of-erc721-token-transfer-events-by-address summary: Get a list of 'ERC721 - Token Transfer Events' by Address description: Returns the list of ERC-721 ( NFT ) tokens transferred by an address, with optional filtering by token contract. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x6975be450864c02b4613023c2152ee0743572325' - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x06012c8cf97bead5deae237070f9587f8e7a266d' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '27025780' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '4708120' timeStamp: '1512907118' hash: '0x031e6968a8de362e4328d60dcc7f72f0d6fc84284c452f63176632177146de66' nonce: '0' blockHash: '0x4be19c278bfaead5cb0bc9476fa632e2447f6e6259e0303af210302d22779a24' from: '0xb1690c08e213a35ed9bab7b318de14420fb57d8c' contractAddress: '0x06012c8cf97bead5deae237070f9587f8e7a266d' to: '0x6975be450864c02b4613023c2152ee0743572325' tokenID: '202106' tokenName: CryptoKitties tokenSymbol: CK tokenDecimal: '0' transactionIndex: '81' gas: '158820' gasPrice: '40000000000' gasUsed: '60508' cumulativeGasUsed: '4880352' input: deprecated confirmations: '7990490' - blockNumber: '4708161' timeStamp: '1512907756' hash: '0x9626e7064b68b5463cf677e10815a0b394645a0bfa245f26a2de6074324e83ff' nonce: '1' blockHash: '0xe1c6cbc39a723496f4cbc3e70241012854f2e88b4d2d5f339d8f0a4a1cc406d8' from: '0xb1690c08e213a35ed9bab7b318de14420fb57d8c' contractAddress: '0x06012c8cf97bead5deae237070f9587f8e7a266d' to: '0x6975be450864c02b4613023c2152ee0743572325' tokenID: '147739' tokenName: CryptoKitties tokenSymbol: CK tokenDecimal: '0' transactionIndex: '41' gas: '135963' gasPrice: '40000000000' gasUsed: '45508' cumulativeGasUsed: '3359342' input: deprecated confirmations: '7990449' /?module=account&action=token1155tx: get: operationId: get-a-list-of-erc1155-token-transfer-events-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-a-list-of-erc1155-token-transfer-events-by-address summary: Get a list of 'ERC1155 - Token Transfer Events' by Address description: Returns the list of ERC-1155 ( Multi Token Standard ) tokens transferred by an address, with optional filtering by token contract. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x83f564d180b58ad9a02a449105568189ee7de8cb' - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x76be3b62873462d2142405439777e971754e8e77' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '99999999' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '13472395' timeStamp: '1634973285' hash: '0x643b15f3ffaad5d38e33e5872b4ebaa7a643eda8b50ffd5331f682934ee65d4d' nonce: '41' blockHash: '0xa5da536dfbe8125eb146114e2ee0d0bdef2b20483aacbf30fed6b60f092059e6' transactionIndex: '100' gas: '140000' gasPrice: '52898577246' gasUsed: '105030' cumulativeGasUsed: '11739203' input: deprecated contractAddress: '0x76be3b62873462d2142405439777e971754e8e77' from: '0x1e63326a84d2fa207bdfa856da9278a93deba418' to: '0x83f564d180b58ad9a02a449105568189ee7de8cb' tokenID: '10371' tokenValue: '1' tokenName: parallel tokenSymbol: LL confirmations: '1447769' - blockNumber: '14049909' timeStamp: '1642781541' hash: '0x58353aab15a4b5a77333b87619edaa749c7f3cf8bb2263a1c0865d73bf1264bd' nonce: '4' blockHash: '0x1e88a63a4cb4086a747644b8ab7ff3434540930f3029eacb8add08b15974fdc9' transactionIndex: '114' gas: '253032' gasPrice: '225052869211' gasUsed: '184899' cumulativeGasUsed: '6855790' input: deprecated contractAddress: '0x76be3b62873462d2142405439777e971754e8e77' from: '0x83f564d180b58ad9a02a449105568189ee7de8cb' to: '0x80833dc92d326a81d0cb74982a8e6f1a3887f837' tokenID: '10371' tokenValue: '1' tokenName: parallel tokenSymbol: LL confirmations: '870255' - blockNumber: '14067255' timeStamp: '1643012777' hash: '0x3222b5f71e577c2551e17701eaf39b308b976bbe6bf6ce3f8c20549527b9d6ae' nonce: '7' blockHash: '0x236cfed8b42fa6cb8956f6e7b889797047d9af0883066b1f3be8284beda16e17' transactionIndex: '172' gas: '56873' gasPrice: '69434775835' gasUsed: '52073' cumulativeGasUsed: '17181952' input: deprecated contractAddress: '0x76be3b62873462d2142405439777e971754e8e77' from: '0x9d48305f859a0006b57da25c80af62ecb8e5c6a2' to: '0x83f564d180b58ad9a02a449105568189ee7de8cb' tokenID: '10372' tokenValue: '1' tokenName: parallel tokenSymbol: LL confirmations: '852909' /?module=account&action=getminedblocks: get: operationId: get-list-of-blocks-validated-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-list-of-blocks-validated-by-address summary: Get list of Blocks Validated by Address description: Returns the list of blocks validated by an address. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b' - in: query name: blocktype schema: $ref: '#/components/schemas/BlockType' required: true example: blocks - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '10' responses: '200': description: 'Operation result. ⏳ Note : The timeStamp is represented in Unix timestamp. ****' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '3462296' timeStamp: '1491118514' blockReward: '5194770940000000000' - blockNumber: '2691400' timeStamp: '1480072029' blockReward: '5086562212310617100' - blockNumber: '2687700' timeStamp: '1480018852' blockReward: '5003251945421042780' /?module=account&action=txsBeaconWithdrawal: get: operationId: get-beacon-chain-withdrawals-by-address-and-block-range externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-beacon-chain-withdrawals-by-address-and-block-range summary: Get Beacon Chain Withdrawals by Address and Block Range description: Returns the beacon chain withdrawals made to an address. tags: - Accounts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f' - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' - in: query name: startblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '0' - in: query name: endblock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '99999999' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - withdrawalIndex: '13' validatorIndex: '117823' address: '0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f' amount: '3402931175' blockNumber: '17034877' timestamp: '1681338599' - withdrawalIndex: '14' validatorIndex: '119023' address: '0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f' amount: '3244098967' blockNumber: '17034877' timestamp: '1681338599' /?module=account&action=balancehistory: get: operationId: get-historical-ether-balance-for-a-single-address-by-blockno externalDocs: url: https://docs.bscscan.com/api-endpoints/accounts#get-historical-ether-balance-for-a-single-address-by-blockno summary: Get Historical Ether Balance for a Single Address By BlockNo description: 'Returns the balance of an address at a certain block height. 📝 Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier. PRO endpoint.' tags: - Accounts - API PRO Endpoints parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae' - in: query name: blockno schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '8000000' responses: '200': description: 'Operation result. 📖 Tip: The result field is denoted in wei.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.balancehistory' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '610538078574759898951277' /?module=contract&action=getabi: get: operationId: get-contract-abi-for-verified-contract-source-codes externalDocs: url: https://docs.bscscan.com/api-endpoints/contracts#get-contract-abi-for-verified-contract-source-codes summary: Get Contract ABI for Verified Contract Source Codes description: Returns the Contract Application Binary Interface ( ABI ) of a verified smart contract. Find verified contracts ✅on our Verified Contracts Source Code page. tags: - Contracts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.contract.getabi' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"description","type":"string"},{"name":"votingDeadline","type":"uint256"},{"name":"open","type":"bool"},{"name":"proposalPassed","type":"bool"},{"name":"proposalHash","type":"bytes32"},{"name":"proposalDeposit","type":"uint256"},{"name":"newCurator","type":"bool"},{"name":"yea","type":"uint256"},{"name":"nay","type":"uint256"},{"name":"creator","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"minTokensToCreate","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"rewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"daoCreator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"divisor","outputs":[{"name":"divisor","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"extraBalance","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"executeProposal","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"unblockMe","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalRewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"actualBalance","outputs":[{"name":"_actualBalance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedRecipients","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_description","type":"string"},{"name":"_transactionData","type":"bytes"},{"name":"_debatingPeriod","type":"uint256"},{"name":"_newCurator","type":"bool"}],"name":"newProposal","outputs":[{"name":"_proposalID","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DAOpaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"minQuorumDivisor","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_newContract","type":"address"}],"name":"newContract","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_allowed","type":"bool"}],"name":"changeAllowedRecipients","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"halveMinQuorum","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"paidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_newCurator","type":"address"}],"name":"splitDAO","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"DAOrewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"proposalDeposit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"numberOfProposals","outputs":[{"name":"_numberOfProposals","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"lastTimeMinQuorumMet","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_toMembers","type":"bool"}],"name":"retrieveDAOReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"receiveEther","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"isFueled","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_tokenHolder","type":"address"}],"name":"createTokenProxy","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"getNewDAOAddress","outputs":[{"name":"_newDAO","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_supportsProposal","type":"bool"}],"name":"vote","outputs":[{"name":"_voteID","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"getMyReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalDeposit","type":"uint256"}],"name":"changeProposalDeposit","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blocked","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"curator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"checkProposalCode","outputs":[{"name":"_codeChecksOut","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"privateCreation","outputs":[{"name":"","type":"address"}],"type":"function"},{"inputs":[{"name":"_curator","type":"address"},{"name":"_daoCreator","type":"address"},{"name":"_proposalDeposit","type":"uint256"},{"name":"_minTokensToCreate","type":"uint256"},{"name":"_closingTime","type":"uint256"},{"name":"_privateCreation","type":"address"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"FuelingToDate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CreatedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"newCurator","type":"bool"},{"indexed":false,"name":"description","type":"string"}],"name":"ProposalAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"position","type":"bool"},{"indexed":true,"name":"voter","type":"address"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"result","type":"bool"},{"indexed":false,"name":"quorum","type":"uint256"}],"name":"ProposalTallied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newCurator","type":"address"}],"name":"NewCurator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_allowed","type":"bool"}],"name":"AllowedRecipientChanged","type":"event"}]' /?module=contract&action=getsourcecode: get: operationId: get-contract-source-code-for-verified-contract-source-codes externalDocs: url: https://docs.bscscan.com/api-endpoints/contracts#get-contract-source-code-for-verified-contract-source-codes summary: Get Contract Source Code for Verified Contract Source Codes description: 'Returns the Solidity source code of a verified smart contract. 📩 Tip : You can also download a CSV list of verified contracts addresses of which the code publishers have provided a corresponding Open Source license for redistribution.' tags: - Contracts parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - SourceCode: | /* - Bytecode Verification performed was compared on second iteration - This file is part of the DAO. The DAO is free software: you can redistribute it and/or modify it under the terms of the GNU lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The DAO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU lesser General Public License for more details. You should have received a copy of the GNU lesser General Public License along with the DAO. If not, see . */ /* Basic, standardized Token contract with no "premine". Defines the functions to check token balances, send tokens, send tokens on behalf of a 3rd party and the corresponding approval process. Tokens need to be created by a derived contract (e.g. TokenCreation.sol). Thank you ConsenSys, this contract originated from: https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/Standard_Token.sol Which is itself based on the Ethereum standardized contract APIs: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs */ /// @title Standard Token Contract. contract TokenInterface { mapping (address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; /// Total amount of tokens uint256 public totalSupply; /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) constant returns (uint256 balance); /// @notice Send `_amount` tokens to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _amount) returns (bool success); /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it /// is approved by `_from` /// @param _from The address of the origin of the transfer /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _amount) returns (bool success); /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on /// its behalf /// @param _spender The address of the account able to transfer the tokens /// @param _amount The amount of tokens to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _amount) returns (bool success); /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens of _owner that _spender is allowed /// to spend function allowance( address _owner, address _spender ) constant returns (uint256 remaining); event Transfer(address indexed _from, address indexed _to, uint256 _amount); event Approval( address indexed _owner, address indexed _spender, uint256 _amount ); } contract Token is TokenInterface { // Protects users by preventing the execution of method calls that // inadvertently also transferred ether modifier noEther() {if (msg.value > 0) throw; _} function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } function transfer(address _to, uint256 _amount) noEther returns (bool success) { if (balances[msg.sender] >= _amount && _amount > 0) { balances[msg.sender] -= _amount; balances[_to] += _amount; Transfer(msg.sender, _to, _amount); return true; } else { return false; } } function transferFrom( address _from, address _to, uint256 _amount ) noEther returns (bool success) { if (balances[_from] >= _amount && allowed[_from][msg.sender] >= _amount && _amount > 0) { balances[_to] += _amount; balances[_from] -= _amount; allowed[_from][msg.sender] -= _amount; Transfer(_from, _to, _amount); return true; } else { return false; } } function approve(address _spender, uint256 _amount) returns (bool success) { allowed[msg.sender][_spender] = _amount; Approval(msg.sender, _spender, _amount); return true; } function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } } /* This file is part of the DAO. The DAO is free software: you can redistribute it and/or modify it under the terms of the GNU lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The DAO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU lesser General Public License for more details. You should have received a copy of the GNU lesser General Public License along with the DAO. If not, see . */ /* Basic account, used by the DAO contract to separately manage both the rewards and the extraBalance accounts. */ contract ManagedAccountInterface { // The only address with permission to withdraw from this account address public owner; // If true, only the owner of the account can receive ether from it bool public payOwnerOnly; // The sum of ether (in wei) which has been sent to this contract uint public accumulatedInput; /// @notice Sends `_amount` of wei to _recipient /// @param _amount The amount of wei to send to `_recipient` /// @param _recipient The address to receive `_amount` of wei /// @return True if the send completed function payOut(address _recipient, uint _amount) returns (bool); event PayOut(address indexed _recipient, uint _amount); } contract ManagedAccount is ManagedAccountInterface{ // The constructor sets the owner of the account function ManagedAccount(address _owner, bool _payOwnerOnly) { owner = _owner; payOwnerOnly = _payOwnerOnly; } // When the contract receives a transaction without data this is called. // It counts the amount of ether it receives and stores it in // accumulatedInput. function() { accumulatedInput += msg.value; } function payOut(address _recipient, uint _amount) returns (bool) { if (msg.sender != owner || msg.value > 0 || (payOwnerOnly && _recipient != owner)) throw; if (_recipient.call.value(_amount)()) { PayOut(_recipient, _amount); return true; } else { return false; } } } /* This file is part of the DAO. The DAO is free software: you can redistribute it and/or modify it under the terms of the GNU lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The DAO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU lesser General Public License for more details. You should have received a copy of the GNU lesser General Public License along with the DAO. If not, see . */ /* * Token Creation contract, used by the DAO to create its tokens and initialize * its ether. Feel free to modify the divisor method to implement different * Token Creation parameters */ contract TokenCreationInterface { // End of token creation, in Unix time uint public closingTime; // Minimum fueling goal of the token creation, denominated in tokens to // be created uint public minTokensToCreate; // True if the DAO reached its minimum fueling goal, false otherwise bool public isFueled; // For DAO splits - if privateCreation is 0, then it is a public token // creation, otherwise only the address stored in privateCreation is // allowed to create tokens address public privateCreation; // hold extra ether which has been sent after the DAO token // creation rate has increased ManagedAccount public extraBalance; // tracks the amount of wei given from each contributor (used for refund) mapping (address => uint256) weiGiven; /// @dev Constructor setting the minimum fueling goal and the /// end of the Token Creation /// @param _minTokensToCreate Minimum fueling goal in number of /// Tokens to be created /// @param _closingTime Date (in Unix time) of the end of the Token Creation /// @param _privateCreation Zero means that the creation is public. A /// non-zero address represents the only address that can create Tokens /// (the address can also create Tokens on behalf of other accounts) // This is the constructor: it can not be overloaded so it is commented out // function TokenCreation( // uint _minTokensTocreate, // uint _closingTime, // address _privateCreation // ); /// @notice Create Token with `_tokenHolder` as the initial owner of the Token /// @param _tokenHolder The address of the Tokens's recipient /// @return Whether the token creation was successful function createTokenProxy(address _tokenHolder) returns (bool success); /// @notice Refund `msg.sender` in the case the Token Creation did /// not reach its minimum fueling goal function refund(); /// @return The divisor used to calculate the token creation rate during /// the creation phase function divisor() constant returns (uint divisor); event FuelingToDate(uint value); event CreatedToken(address indexed to, uint amount); event Refund(address indexed to, uint value); } contract TokenCreation is TokenCreationInterface, Token { function TokenCreation( uint _minTokensToCreate, uint _closingTime, address _privateCreation) { closingTime = _closingTime; minTokensToCreate = _minTokensToCreate; privateCreation = _privateCreation; extraBalance = new ManagedAccount(address(this), true); } function createTokenProxy(address _tokenHolder) returns (bool success) { if (now < closingTime && msg.value > 0 && (privateCreation == 0 || privateCreation == msg.sender)) { uint token = (msg.value * 20) / divisor(); extraBalance.call.value(msg.value - token)(); balances[_tokenHolder] += token; totalSupply += token; weiGiven[_tokenHolder] += msg.value; CreatedToken(_tokenHolder, token); if (totalSupply >= minTokensToCreate && !isFueled) { isFueled = true; FuelingToDate(totalSupply); } return true; } throw; } function refund() noEther { if (now > closingTime && !isFueled) { // Get extraBalance - will only succeed when called for the first time if (extraBalance.balance >= extraBalance.accumulatedInput()) extraBalance.payOut(address(this), extraBalance.accumulatedInput()); // Execute refund if (msg.sender.call.value(weiGiven[msg.sender])()) { Refund(msg.sender, weiGiven[msg.sender]); totalSupply -= balances[msg.sender]; balances[msg.sender] = 0; weiGiven[msg.sender] = 0; } } } function divisor() constant returns (uint divisor) { // The number of (base unit) tokens per wei is calculated // as `msg.value` * 20 / `divisor` // The fueling period starts with a 1:1 ratio if (closingTime - 2 weeks > now) { return 20; // Followed by 10 days with a daily creation rate increase of 5% } else if (closingTime - 4 days > now) { return (20 + (now - (closingTime - 2 weeks)) / (1 days)); // The last 4 days there is a constant creation rate ratio of 1:1.5 } else { return 30; } } } /* This file is part of the DAO. The DAO is free software: you can redistribute it and/or modify it under the terms of the GNU lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The DAO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU lesser General Public License for more details. You should have received a copy of the GNU lesser General Public License along with the DAO. If not, see . */ /* Standard smart contract for a Decentralized Autonomous Organization (DAO) to automate organizational governance and decision-making. */ contract DAOInterface { // The amount of days for which people who try to participate in the // creation by calling the fallback function will still get their ether back uint constant creationGracePeriod = 40 days; // The minimum debate period that a generic proposal can have uint constant minProposalDebatePeriod = 2 weeks; // The minimum debate period that a split proposal can have uint constant minSplitDebatePeriod = 1 weeks; // Period of days inside which it's possible to execute a DAO split uint constant splitExecutionPeriod = 27 days; // Period of time after which the minimum Quorum is halved uint constant quorumHalvingPeriod = 25 weeks; // Period after which a proposal is closed // (used in the case `executeProposal` fails because it throws) uint constant executeProposalPeriod = 10 days; // Denotes the maximum proposal deposit that can be given. It is given as // a fraction of total Ether spent plus balance of the DAO uint constant maxDepositDivisor = 100; // Proposals to spend the DAO's ether or to choose a new Curator Proposal[] public proposals; // The quorum needed for each proposal is partially calculated by // totalSupply / minQuorumDivisor uint public minQuorumDivisor; // The unix time of the last time quorum was reached on a proposal uint public lastTimeMinQuorumMet; // Address of the curator address public curator; // The whitelist: List of addresses the DAO is allowed to send ether to mapping (address => bool) public allowedRecipients; // Tracks the addresses that own Reward Tokens. Those addresses can only be // DAOs that have split from the original DAO. Conceptually, Reward Tokens // represent the proportion of the rewards that the DAO has the right to // receive. These Reward Tokens are generated when the DAO spends ether. mapping (address => uint) public rewardToken; // Total supply of rewardToken uint public totalRewardToken; // The account used to manage the rewards which are to be distributed to the // DAO Token Holders of this DAO ManagedAccount public rewardAccount; // The account used to manage the rewards which are to be distributed to // any DAO that holds Reward Tokens ManagedAccount public DAOrewardAccount; // Amount of rewards (in wei) already paid out to a certain DAO mapping (address => uint) public DAOpaidOut; // Amount of rewards (in wei) already paid out to a certain address mapping (address => uint) public paidOut; // Map of addresses blocked during a vote (not allowed to transfer DAO // tokens). The address points to the proposal ID. mapping (address => uint) public blocked; // The minimum deposit (in wei) required to submit any proposal that is not // requesting a new Curator (no deposit is required for splits) uint public proposalDeposit; // the accumulated sum of all current proposal deposits uint sumOfProposalDeposits; // Contract that is able to create a new DAO (with the same code as // this one), used for splits DAO_Creator public daoCreator; // A proposal with `newCurator == false` represents a transaction // to be issued by this DAO // A proposal with `newCurator == true` represents a DAO split struct Proposal { // The address where the `amount` will go to if the proposal is accepted // or if `newCurator` is true, the proposed Curator of // the new DAO). address recipient; // The amount to transfer to `recipient` if the proposal is accepted. uint amount; // A plain text description of the proposal string description; // A unix timestamp, denoting the end of the voting period uint votingDeadline; // True if the proposal's votes have yet to be counted, otherwise False bool open; // True if quorum has been reached, the votes have been counted, and // the majority said yes bool proposalPassed; // A hash to check validity of a proposal bytes32 proposalHash; // Deposit in wei the creator added when submitting their proposal. It // is taken from the msg.value of a newProposal call. uint proposalDeposit; // True if this proposal is to assign a new Curator bool newCurator; // Data needed for splitting the DAO SplitData[] splitData; // Number of Tokens in favor of the proposal uint yea; // Number of Tokens opposed to the proposal uint nay; // Simple mapping to check if a shareholder has voted for it mapping (address => bool) votedYes; // Simple mapping to check if a shareholder has voted against it mapping (address => bool) votedNo; // Address of the shareholder who created the proposal address creator; } // Used only in the case of a newCurator proposal. struct SplitData { // The balance of the current DAO minus the deposit at the time of split uint splitBalance; // The total amount of DAO Tokens in existence at the time of split. uint totalSupply; // Amount of Reward Tokens owned by the DAO at the time of split. uint rewardToken; // The new DAO contract created at the time of split. DAO newDAO; } // Used to restrict access to certain functions to only DAO Token Holders modifier onlyTokenholders {} /// @dev Constructor setting the Curator and the address /// for the contract able to create another DAO as well as the parameters /// for the DAO Token Creation /// @param _curator The Curator /// @param _daoCreator The contract able to (re)create this DAO /// @param _proposalDeposit The deposit to be paid for a regular proposal /// @param _minTokensToCreate Minimum required wei-equivalent tokens /// to be created for a successful DAO Token Creation /// @param _closingTime Date (in Unix time) of the end of the DAO Token Creation /// @param _privateCreation If zero the DAO Token Creation is open to public, a /// non-zero address means that the DAO Token Creation is only for the address // This is the constructor: it can not be overloaded so it is commented out // function DAO( // address _curator, // DAO_Creator _daoCreator, // uint _proposalDeposit, // uint _minTokensToCreate, // uint _closingTime, // address _privateCreation // ); /// @notice Create Token with `msg.sender` as the beneficiary /// @return Whether the token creation was successful function () returns (bool success); /// @dev This function is used to send ether back /// to the DAO, it can also be used to receive payments that should not be /// counted as rewards (donations, grants, etc.) /// @return Whether the DAO received the ether successfully function receiveEther() returns(bool); /// @notice `msg.sender` creates a proposal to send `_amount` Wei to /// `_recipient` with the transaction data `_transactionData`. If /// `_newCurator` is true, then this is a proposal that splits the /// DAO and sets `_recipient` as the new DAO's Curator. /// @param _recipient Address of the recipient of the proposed transaction /// @param _amount Amount of wei to be sent with the proposed transaction /// @param _description String describing the proposal /// @param _transactionData Data of the proposed transaction /// @param _debatingPeriod Time used for debating a proposal, at least 2 /// weeks for a regular proposal, 10 days for new Curator proposal /// @param _newCurator Bool defining whether this proposal is about /// a new Curator or not /// @return The proposal ID. Needed for voting on the proposal function newProposal( address _recipient, uint _amount, string _description, bytes _transactionData, uint _debatingPeriod, bool _newCurator ) onlyTokenholders returns (uint _proposalID); /// @notice Check that the proposal with the ID `_proposalID` matches the /// transaction which sends `_amount` with data `_transactionData` /// to `_recipient` /// @param _proposalID The proposal ID /// @param _recipient The recipient of the proposed transaction /// @param _amount The amount of wei to be sent in the proposed transaction /// @param _transactionData The data of the proposed transaction /// @return Whether the proposal ID matches the transaction data or not function checkProposalCode( uint _proposalID, address _recipient, uint _amount, bytes _transactionData ) constant returns (bool _codeChecksOut); /// @notice Vote on proposal `_proposalID` with `_supportsProposal` /// @param _proposalID The proposal ID /// @param _supportsProposal Yes/No - support of the proposal /// @return The vote ID. function vote( uint _proposalID, bool _supportsProposal ) onlyTokenholders returns (uint _voteID); /// @notice Checks whether proposal `_proposalID` with transaction data /// `_transactionData` has been voted for or rejected, and executes the /// transaction in the case it has been voted for. /// @param _proposalID The proposal ID /// @param _transactionData The data of the proposed transaction /// @return Whether the proposed transaction has been executed or not function executeProposal( uint _proposalID, bytes _transactionData ) returns (bool _success); /// @notice ATTENTION! I confirm to move my remaining ether to a new DAO /// with `_newCurator` as the new Curator, as has been /// proposed in proposal `_proposalID`. This will burn my tokens. This can /// not be undone and will split the DAO into two DAO's, with two /// different underlying tokens. /// @param _proposalID The proposal ID /// @param _newCurator The new Curator of the new DAO /// @dev This function, when called for the first time for this proposal, /// will create a new DAO and send the sender's portion of the remaining /// ether and Reward Tokens to the new DAO. It will also burn the DAO Tokens /// of the sender. function splitDAO( uint _proposalID, address _newCurator ) returns (bool _success); /// @dev can only be called by the DAO itself through a proposal /// updates the contract of the DAO by sending all ether and rewardTokens /// to the new DAO. The new DAO needs to be approved by the Curator /// @param _newContract the address of the new contract function newContract(address _newContract); /// @notice Add a new possible recipient `_recipient` to the whitelist so /// that the DAO can send transactions to them (using proposals) /// @param _recipient New recipient address /// @dev Can only be called by the current Curator /// @return Whether successful or not function changeAllowedRecipients(address _recipient, bool _allowed) external returns (bool _success); /// @notice Change the minimum deposit required to submit a proposal /// @param _proposalDeposit The new proposal deposit /// @dev Can only be called by this DAO (through proposals with the /// recipient being this DAO itself) function changeProposalDeposit(uint _proposalDeposit) external; /// @notice Move rewards from the DAORewards managed account /// @param _toMembers If true rewards are moved to the actual reward account /// for the DAO. If not then it's moved to the DAO itself /// @return Whether the call was successful function retrieveDAOReward(bool _toMembers) external returns (bool _success); /// @notice Get my portion of the reward that was sent to `rewardAccount` /// @return Whether the call was successful function getMyReward() returns(bool _success); /// @notice Withdraw `_account`'s portion of the reward from `rewardAccount` /// to `_account`'s balance /// @return Whether the call was successful function withdrawRewardFor(address _account) internal returns (bool _success); /// @notice Send `_amount` tokens to `_to` from `msg.sender`. Prior to this /// getMyReward() is called. /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transfered /// @return Whether the transfer was successful or not function transferWithoutReward(address _to, uint256 _amount) returns (bool success); /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it /// is approved by `_from`. Prior to this getMyReward() is called. /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _amount The amount of tokens to be transfered /// @return Whether the transfer was successful or not function transferFromWithoutReward( address _from, address _to, uint256 _amount ) returns (bool success); /// @notice Doubles the 'minQuorumDivisor' in the case quorum has not been /// achieved in 52 weeks /// @return Whether the change was successful or not function halveMinQuorum() returns (bool _success); /// @return total number of proposals ever created function numberOfProposals() constant returns (uint _numberOfProposals); /// @param _proposalID Id of the new curator proposal /// @return Address of the new DAO function getNewDAOAddress(uint _proposalID) constant returns (address _newDAO); /// @param _account The address of the account which is checked. /// @return Whether the account is blocked (not allowed to transfer tokens) or not. function isBlocked(address _account) internal returns (bool); /// @notice If the caller is blocked by a proposal whose voting deadline /// has exprired then unblock him. /// @return Whether the account is blocked (not allowed to transfer tokens) or not. function unblockMe() returns (bool); event ProposalAdded( uint indexed proposalID, address recipient, uint amount, bool newCurator, string description ); event Voted(uint indexed proposalID, bool position, address indexed voter); event ProposalTallied(uint indexed proposalID, bool result, uint quorum); event NewCurator(address indexed _newCurator); event AllowedRecipientChanged(address indexed _recipient, bool _allowed); } // The DAO contract itself contract DAO is DAOInterface, Token, TokenCreation { // Modifier that allows only shareholders to vote and create new proposals modifier onlyTokenholders { if (balanceOf(msg.sender) == 0) throw; _ } function DAO( address _curator, DAO_Creator _daoCreator, uint _proposalDeposit, uint _minTokensToCreate, uint _closingTime, address _privateCreation ) TokenCreation(_minTokensToCreate, _closingTime, _privateCreation) { curator = _curator; daoCreator = _daoCreator; proposalDeposit = _proposalDeposit; rewardAccount = new ManagedAccount(address(this), false); DAOrewardAccount = new ManagedAccount(address(this), false); if (address(rewardAccount) == 0) throw; if (address(DAOrewardAccount) == 0) throw; lastTimeMinQuorumMet = now; minQuorumDivisor = 5; // sets the minimal quorum to 20% proposals.length = 1; // avoids a proposal with ID 0 because it is used allowedRecipients[address(this)] = true; allowedRecipients[curator] = true; } function () returns (bool success) { if (now < closingTime + creationGracePeriod && msg.sender != address(extraBalance)) return createTokenProxy(msg.sender); else return receiveEther(); } function receiveEther() returns (bool) { return true; } function newProposal( address _recipient, uint _amount, string _description, bytes _transactionData, uint _debatingPeriod, bool _newCurator ) onlyTokenholders returns (uint _proposalID) { // Sanity check if (_newCurator && ( _amount != 0 || _transactionData.length != 0 || _recipient == curator || msg.value > 0 || _debatingPeriod < minSplitDebatePeriod)) { throw; } else if ( !_newCurator && (!isRecipientAllowed(_recipient) || (_debatingPeriod < minProposalDebatePeriod)) ) { throw; } if (_debatingPeriod > 8 weeks) throw; if (!isFueled || now < closingTime || (msg.value < proposalDeposit && !_newCurator)) { throw; } if (now + _debatingPeriod < now) // prevents overflow throw; // to prevent a 51% attacker to convert the ether into deposit if (msg.sender == address(this)) throw; _proposalID = proposals.length++; Proposal p = proposals[_proposalID]; p.recipient = _recipient; p.amount = _amount; p.description = _description; p.proposalHash = sha3(_recipient, _amount, _transactionData); p.votingDeadline = now + _debatingPeriod; p.open = true; //p.proposalPassed = False; // that's default p.newCurator = _newCurator; if (_newCurator) p.splitData.length++; p.creator = msg.sender; p.proposalDeposit = msg.value; sumOfProposalDeposits += msg.value; ProposalAdded( _proposalID, _recipient, _amount, _newCurator, _description ); } function checkProposalCode( uint _proposalID, address _recipient, uint _amount, bytes _transactionData ) noEther constant returns (bool _codeChecksOut) { Proposal p = proposals[_proposalID]; return p.proposalHash == sha3(_recipient, _amount, _transactionData); } function vote( uint _proposalID, bool _supportsProposal ) onlyTokenholders noEther returns (uint _voteID) { Proposal p = proposals[_proposalID]; if (p.votedYes[msg.sender] || p.votedNo[msg.sender] || now >= p.votingDeadline) { throw; } if (_supportsProposal) { p.yea += balances[msg.sender]; p.votedYes[msg.sender] = true; } else { p.nay += balances[msg.sender]; p.votedNo[msg.sender] = true; } if (blocked[msg.sender] == 0) { blocked[msg.sender] = _proposalID; } else if (p.votingDeadline > proposals[blocked[msg.sender]].votingDeadline) { // this proposal's voting deadline is further into the future than // the proposal that blocks the sender so make it the blocker blocked[msg.sender] = _proposalID; } Voted(_proposalID, _supportsProposal, msg.sender); } function executeProposal( uint _proposalID, bytes _transactionData ) noEther returns (bool _success) { Proposal p = proposals[_proposalID]; uint waitPeriod = p.newCurator ? splitExecutionPeriod : executeProposalPeriod; // If we are over deadline and waiting period, assert proposal is closed if (p.open && now > p.votingDeadline + waitPeriod) { closeProposal(_proposalID); return; } // Check if the proposal can be executed if (now < p.votingDeadline // has the voting deadline arrived? // Have the votes been counted? || !p.open // Does the transaction code match the proposal? || p.proposalHash != sha3(p.recipient, p.amount, _transactionData)) { throw; } // If the curator removed the recipient from the whitelist, close the proposal // in order to free the deposit and allow unblocking of voters if (!isRecipientAllowed(p.recipient)) { closeProposal(_proposalID); p.creator.send(p.proposalDeposit); return; } bool proposalCheck = true; if (p.amount > actualBalance()) proposalCheck = false; uint quorum = p.yea + p.nay; // require 53% for calling newContract() if (_transactionData.length >= 4 && _transactionData[0] == 0x68 && _transactionData[1] == 0x37 && _transactionData[2] == 0xff && _transactionData[3] == 0x1e && quorum < minQuorum(actualBalance() + rewardToken[address(this)])) { proposalCheck = false; } if (quorum >= minQuorum(p.amount)) { if (!p.creator.send(p.proposalDeposit)) throw; lastTimeMinQuorumMet = now; // set the minQuorum to 20% again, in the case it has been reached if (quorum > totalSupply / 5) minQuorumDivisor = 5; } // Execute result if (quorum >= minQuorum(p.amount) && p.yea > p.nay && proposalCheck) { if (!p.recipient.call.value(p.amount)(_transactionData)) throw; p.proposalPassed = true; _success = true; // only create reward tokens when ether is not sent to the DAO itself and // related addresses. Proxy addresses should be forbidden by the curator. if (p.recipient != address(this) && p.recipient != address(rewardAccount) && p.recipient != address(DAOrewardAccount) && p.recipient != address(extraBalance) && p.recipient != address(curator)) { rewardToken[address(this)] += p.amount; totalRewardToken += p.amount; } } closeProposal(_proposalID); // Initiate event ProposalTallied(_proposalID, _success, quorum); } function closeProposal(uint _proposalID) internal { Proposal p = proposals[_proposalID]; if (p.open) sumOfProposalDeposits -= p.proposalDeposit; p.open = false; } function splitDAO( uint _proposalID, address _newCurator ) noEther onlyTokenholders returns (bool _success) { Proposal p = proposals[_proposalID]; // Sanity check if (now < p.votingDeadline // has the voting deadline arrived? //The request for a split expires XX days after the voting deadline || now > p.votingDeadline + splitExecutionPeriod // Does the new Curator address match? || p.recipient != _newCurator // Is it a new curator proposal? || !p.newCurator // Have you voted for this split? || !p.votedYes[msg.sender] // Did you already vote on another proposal? || (blocked[msg.sender] != _proposalID && blocked[msg.sender] != 0) ) { throw; } // If the new DAO doesn't exist yet, create the new DAO and store the // current split data if (address(p.splitData[0].newDAO) == 0) { p.splitData[0].newDAO = createNewDAO(_newCurator); // Call depth limit reached, etc. if (address(p.splitData[0].newDAO) == 0) throw; // should never happen if (this.balance < sumOfProposalDeposits) throw; p.splitData[0].splitBalance = actualBalance(); p.splitData[0].rewardToken = rewardToken[address(this)]; p.splitData[0].totalSupply = totalSupply; p.proposalPassed = true; } // Move ether and assign new Tokens uint fundsToBeMoved = (balances[msg.sender] * p.splitData[0].splitBalance) / p.splitData[0].totalSupply; if (p.splitData[0].newDAO.createTokenProxy.value(fundsToBeMoved)(msg.sender) == false) throw; // Assign reward rights to new DAO uint rewardTokenToBeMoved = (balances[msg.sender] * p.splitData[0].rewardToken) / p.splitData[0].totalSupply; uint paidOutToBeMoved = DAOpaidOut[address(this)] * rewardTokenToBeMoved / rewardToken[address(this)]; rewardToken[address(p.splitData[0].newDAO)] += rewardTokenToBeMoved; if (rewardToken[address(this)] < rewardTokenToBeMoved) throw; rewardToken[address(this)] -= rewardTokenToBeMoved; DAOpaidOut[address(p.splitData[0].newDAO)] += paidOutToBeMoved; if (DAOpaidOut[address(this)] < paidOutToBeMoved) throw; DAOpaidOut[address(this)] -= paidOutToBeMoved; // Burn DAO Tokens Transfer(msg.sender, 0, balances[msg.sender]); withdrawRewardFor(msg.sender); // be nice, and get his rewards totalSupply -= balances[msg.sender]; balances[msg.sender] = 0; paidOut[msg.sender] = 0; return true; } function newContract(address _newContract){ if (msg.sender != address(this) || !allowedRecipients[_newContract]) return; // move all ether if (!_newContract.call.value(address(this).balance)()) { throw; } //move all reward tokens rewardToken[_newContract] += rewardToken[address(this)]; rewardToken[address(this)] = 0; DAOpaidOut[_newContract] += DAOpaidOut[address(this)]; DAOpaidOut[address(this)] = 0; } function retrieveDAOReward(bool _toMembers) external noEther returns (bool _success) { DAO dao = DAO(msg.sender); if ((rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken < DAOpaidOut[msg.sender]) throw; uint reward = (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) / totalRewardToken - DAOpaidOut[msg.sender]; if(_toMembers) { if (!DAOrewardAccount.payOut(dao.rewardAccount(), reward)) throw; } else { if (!DAOrewardAccount.payOut(dao, reward)) throw; } DAOpaidOut[msg.sender] += reward; return true; } function getMyReward() noEther returns (bool _success) { return withdrawRewardFor(msg.sender); } function withdrawRewardFor(address _account) noEther internal returns (bool _success) { if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) throw; uint reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]; if (!rewardAccount.payOut(_account, reward)) throw; paidOut[_account] += reward; return true; } function transfer(address _to, uint256 _value) returns (bool success) { if (isFueled && now > closingTime && !isBlocked(msg.sender) && transferPaidOut(msg.sender, _to, _value) && super.transfer(_to, _value)) { return true; } else { throw; } } function transferWithoutReward(address _to, uint256 _value) returns (bool success) { if (!getMyReward()) throw; return transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (isFueled && now > closingTime && !isBlocked(_from) && transferPaidOut(_from, _to, _value) && super.transferFrom(_from, _to, _value)) { return true; } else { throw; } } function transferFromWithoutReward( address _from, address _to, uint256 _value ) returns (bool success) { if (!withdrawRewardFor(_from)) throw; return transferFrom(_from, _to, _value); } function transferPaidOut( address _from, address _to, uint256 _value ) internal returns (bool success) { uint transferPaidOut = paidOut[_from] * _value / balanceOf(_from); if (transferPaidOut > paidOut[_from]) throw; paidOut[_from] -= transferPaidOut; paidOut[_to] += transferPaidOut; return true; } function changeProposalDeposit(uint _proposalDeposit) noEther external { if (msg.sender != address(this) || _proposalDeposit > (actualBalance() + rewardToken[address(this)]) / maxDepositDivisor) { throw; } proposalDeposit = _proposalDeposit; } function changeAllowedRecipients(address _recipient, bool _allowed) noEther external returns (bool _success) { if (msg.sender != curator) throw; allowedRecipients[_recipient] = _allowed; AllowedRecipientChanged(_recipient, _allowed); return true; } function isRecipientAllowed(address _recipient) internal returns (bool _isAllowed) { if (allowedRecipients[_recipient] || (_recipient == address(extraBalance) // only allowed when at least the amount held in the // extraBalance account has been spent from the DAO && totalRewardToken > extraBalance.accumulatedInput())) return true; else return false; } function actualBalance() constant returns (uint _actualBalance) { return this.balance - sumOfProposalDeposits; } function minQuorum(uint _value) internal constant returns (uint _minQuorum) { // minimum of 20% and maximum of 53.33% return totalSupply / minQuorumDivisor + (_value * totalSupply) / (3 * (actualBalance() + rewardToken[address(this)])); } function halveMinQuorum() returns (bool _success) { // this can only be called after `quorumHalvingPeriod` has passed or at anytime // by the curator with a delay of at least `minProposalDebatePeriod` between the calls if ((lastTimeMinQuorumMet < (now - quorumHalvingPeriod) || msg.sender == curator) && lastTimeMinQuorumMet < (now - minProposalDebatePeriod)) { lastTimeMinQuorumMet = now; minQuorumDivisor *= 2; return true; } else { return false; } } function createNewDAO(address _newCurator) internal returns (DAO _newDAO) { NewCurator(_newCurator); return daoCreator.createDAO(_newCurator, 0, 0, now + splitExecutionPeriod); } function numberOfProposals() constant returns (uint _numberOfProposals) { // Don't count index 0. It's used by isBlocked() and exists from start return proposals.length - 1; } function getNewDAOAddress(uint _proposalID) constant returns (address _newDAO) { return proposals[_proposalID].splitData[0].newDAO; } function isBlocked(address _account) internal returns (bool) { if (blocked[_account] == 0) return false; Proposal p = proposals[blocked[_account]]; if (now > p.votingDeadline) { blocked[_account] = 0; return false; } else { return true; } } function unblockMe() returns (bool) { return isBlocked(msg.sender); } } contract DAO_Creator { function createDAO( address _curator, uint _proposalDeposit, uint _minTokensToCreate, uint _closingTime ) returns (DAO _newDAO) { return new DAO( _curator, DAO_Creator(this), _proposalDeposit, _minTokensToCreate, _closingTime, msg.sender ); } } ABI: '[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"description","type":"string"},{"name":"votingDeadline","type":"uint256"},{"name":"open","type":"bool"},{"name":"proposalPassed","type":"bool"},{"name":"proposalHash","type":"bytes32"},{"name":"proposalDeposit","type":"uint256"},{"name":"newCurator","type":"bool"},{"name":"yea","type":"uint256"},{"name":"nay","type":"uint256"},{"name":"creator","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"minTokensToCreate","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"rewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"daoCreator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"divisor","outputs":[{"name":"divisor","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"extraBalance","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"executeProposal","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"unblockMe","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalRewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"actualBalance","outputs":[{"name":"_actualBalance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedRecipients","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_description","type":"string"},{"name":"_transactionData","type":"bytes"},{"name":"_debatingPeriod","type":"uint256"},{"name":"_newCurator","type":"bool"}],"name":"newProposal","outputs":[{"name":"_proposalID","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DAOpaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"minQuorumDivisor","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_newContract","type":"address"}],"name":"newContract","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_allowed","type":"bool"}],"name":"changeAllowedRecipients","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"halveMinQuorum","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"paidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_newCurator","type":"address"}],"name":"splitDAO","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"DAOrewardAccount","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"proposalDeposit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"numberOfProposals","outputs":[{"name":"_numberOfProposals","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"lastTimeMinQuorumMet","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_toMembers","type":"bool"}],"name":"retrieveDAOReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"receiveEther","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"isFueled","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_tokenHolder","type":"address"}],"name":"createTokenProxy","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"}],"name":"getNewDAOAddress","outputs":[{"name":"_newDAO","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_supportsProposal","type":"bool"}],"name":"vote","outputs":[{"name":"_voteID","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"getMyReward","outputs":[{"name":"_success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rewardToken","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromWithoutReward","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_proposalDeposit","type":"uint256"}],"name":"changeProposalDeposit","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blocked","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"curator","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"_proposalID","type":"uint256"},{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_transactionData","type":"bytes"}],"name":"checkProposalCode","outputs":[{"name":"_codeChecksOut","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"privateCreation","outputs":[{"name":"","type":"address"}],"type":"function"},{"inputs":[{"name":"_curator","type":"address"},{"name":"_daoCreator","type":"address"},{"name":"_proposalDeposit","type":"uint256"},{"name":"_minTokensToCreate","type":"uint256"},{"name":"_closingTime","type":"uint256"},{"name":"_privateCreation","type":"address"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"FuelingToDate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CreatedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"newCurator","type":"bool"},{"indexed":false,"name":"description","type":"string"}],"name":"ProposalAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"position","type":"bool"},{"indexed":true,"name":"voter","type":"address"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"result","type":"bool"},{"indexed":false,"name":"quorum","type":"uint256"}],"name":"ProposalTallied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newCurator","type":"address"}],"name":"NewCurator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_allowed","type":"bool"}],"name":"AllowedRecipientChanged","type":"event"}]' ContractName: DAO CompilerVersion: v0.3.1-2016-04-12-3ad5e82 OptimizationUsed: '1' Runs: '200' ConstructorArguments: 000000000000000000000000da4a4626d3e16e094de3225a751aab7128e965260000000000000000000000004a574510c7014e4ae985403536074abe582adfc80000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000a968163f0a57b4000000000000000000000000000000000000000000000000000000000000057495e100000000000000000000000000000000000000000000000000000000000000000 EVMVersion: Default Library: '' LicenseType: '' Proxy: '0' Implementation: '' SwarmSource: '' /?module=contract&action=getcontractcreation: get: operationId: get-contract-creator-and-creation-tx-hash externalDocs: url: https://docs.bscscan.com/api-endpoints/contracts#get-contract-creator-and-creation-tx-hash summary: Get Contract Creator and Creation Tx Hash description: Returns a contract's deployer address and transaction hash it was created, up to 5 at a time. tags: - Contracts parameters: - in: query name: contractaddresses schema: type: array items: $ref: '#/components/schemas/AddressHash' maxItems: 5 style: form explode: false example: 0xB83c27805aAcA5C7082eB45C868d955Cf04C337F,0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45,0xe4462eb568E2DFbb5b0cA2D3DbB1A35C9Aa98aad,0xdAC17F958D2ee523a2206206994597C13D831ec7,0xf5b969064b91869fBF676ecAbcCd1c5563F591d0 responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.contract.getcontractcreation' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - contractAddress: '0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45' contractCreator: '0x6c9fc64a53c1b71fb3f9af64d1ae3a4931a5f4e9' txHash: '0x7299cca7203f60a831756e043f4c2ccb0ee6cb7cf8aed8420f0ae99a16883a2b' - contractAddress: '0xb83c27805aaca5c7082eb45c868d955cf04c337f' contractCreator: '0x390dcfddebeff949b9862ec91d7be337b8995553' txHash: '0x0dbad4991b6727df606650635c9e632dad8a92c6363c91652307680efd336c6e' - contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7' contractCreator: '0x36928500bc1dcd7af6a2b4008875cc336b927d57' txHash: '0x2f1c5c2b44f771e942a8506148e256f94f1a464babc938ae0690c6e34cd79190' - contractAddress: '0xe4462eb568e2dfbb5b0ca2d3dbb1a35c9aa98aad' contractCreator: '0xa6d3a33a1c66083859765b9d6e407d095a908193' txHash: '0x785bcd378c8168b63c9fdef64219f8ff69eec1f785f081a74513f21b18072f93' - contractAddress: '0xf5b969064b91869fbf676ecabccd1c5563f591d0' contractCreator: '0x435a5760aa360cae8c246039abab7754e80a1af1' txHash: '0x779cceffd0a5b4df6718674f7d88dda3edde9ff0a6fec271eb584f65a56997c6' /?module=contract&action=verifysourcecode: post: operationId: verify-source-code externalDocs: url: https://docs.bscscan.com/api-endpoints/contracts#verify-source-code summary: Verify Source Code description: 'Submits a contract source code to an Etherscan-like explorer for verification. 🌐 Tutorial : A full walk through of submitting multichain contract verification.📝 Note : This endpoint is limited to 100 verifications/day, regardless of API PRO tier.' tags: - Contracts parameters: [] responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.contract.verifysourcecode' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/Post.contract.verifysourcecode' /?module=contract&action=checkverifystatus: get: operationId: check-source-code-verification-status externalDocs: url: https://docs.bscscan.com/api-endpoints/contracts#check-source-code-verification-status summary: Check Source Code Verification Status description: Returns the success or error status of a contract verification request. tags: - Contracts parameters: - in: query name: guid schema: $ref: '#/components/schemas/GUID' required: true example: x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.contract.checkverifystatus' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: Pass - Verified /?module=transaction&action=getstatus: get: operationId: check-contract-execution-status externalDocs: url: https://docs.bscscan.com/api-endpoints/stats#check-contract-execution-status summary: Check Contract Execution Status description: Returns the status code of a contract execution. tags: - Transactions parameters: - in: query name: txhash schema: $ref: '#/components/schemas/TxHash' required: true example: '0x15f8e5ea1079d9a0bb04a4c58ae5fe7654b5b2b4463375ff7ffb490aa0032f3a' responses: '200': description: 'Operation result. 📖 Tip: The isError field returns 0 for successful transactions and 1 for failed transactions.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.transaction.getstatus' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: isError: '1' errDescription: Bad jump destination /?module=transaction&action=gettxreceiptstatus: get: operationId: check-transaction-receipt-status externalDocs: url: https://docs.bscscan.com/api-endpoints/stats#check-transaction-receipt-status summary: Check Transaction Receipt Status description: 'Returns the status code of a transaction execution. 📝 Note: Only applicable for post Byzantium Fork transactions.' tags: - Transactions parameters: - in: query name: txhash schema: $ref: '#/components/schemas/TxHash' required: true example: '0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76' responses: '200': description: 'Operation result. 📖 Tip: The status field returns 0 for failed transactions and 1 for successful transactions.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.transaction.gettxreceiptstatus' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: status: '1' /?module=block&action=getblockreward: get: operationId: get-block-and-uncle-rewards-by-blockno externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-block-and-uncle-rewards-by-blockno summary: Get Block And Uncle Rewards by BlockNo description: Returns the block reward and 'Uncle' block rewards. tags: - Blocks parameters: - in: query name: blockno schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '2165403' responses: '200': description: 'Operation result. ​​ ⏳ Tip : The timestamp field is denoted in Unix timestamp.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.block.getblockreward' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: blockNumber: '2165403' timeStamp: '1472533979' blockMiner: '0x13a06d3dfe21e0db5c016c03ea7d2509f7f8d1e3' blockReward: '5314181600000000000' uncles: - miner: '0xbcdfc35b86bedf72f0cda046a3c16829a2ef41d1' unclePosition: '0' blockreward: '3750000000000000000' - miner: '0x0d0c9855c722ff0c78f21e43aa275a5b8ea60dce' unclePosition: '1' blockreward: '3750000000000000000' uncleInclusionReward: '312500000000000000' /?module=block&action=getblockcountdown: get: operationId: get-estimated-block-countdown-time-by-blockno externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-estimated-block-countdown-time-by-blockno summary: Get Estimated Block Countdown Time by BlockNo description: Returns the estimated time remaining, in seconds, until a certain block is mined. tags: - Blocks parameters: - in: query name: blockno schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '16701588' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.block.getblockcountdown' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: CurrentBlock: '12715477' CountdownBlock: '16701588' RemainingBlock: '3986111' EstimateTimeInSec: '52616680.2' /?module=block&action=getblocknobytime: get: operationId: get-block-number-by-timestamp externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-block-number-by-timestamp summary: Get Block Number by Timestamp description: Returns the block number that was mined at a certain timestamp. tags: - Blocks parameters: - in: query name: timestamp schema: $ref: '#/components/schemas/UnixTimestamp' required: true example: '1578638524' - in: query name: closest schema: $ref: '#/components/schemas/BlockClosest' required: true example: before responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.block.getblocknobytime' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '12712551' /?module=stats&action=dailyavgblocksize: get: operationId: get-daily-average-block-size externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-daily-average-block-size summary: Get Daily Average Block Size description: Returns the daily average block size within a date range. PRO endpoint. tags: - Blocks - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavgblocksize' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' blockSize_bytes: 20373 - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' blockSize_bytes: 25117 /?module=stats&action=dailyblkcount: get: operationId: get-daily-block-count-and-rewards externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-daily-block-count-and-rewards summary: Get Daily Block Count and Rewards description: Returns the number of blocks mined daily and the amount of block rewards. PRO endpoint. tags: - Blocks - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyblkcount' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' blockCount: 4848 blockRewards_Eth: '14929.464690870590355682' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' blockCount: 4366 blockRewards_Eth: '12808.485512162356907132' /?module=stats&action=dailyblockrewards: get: operationId: get-daily-block-rewards externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-daily-block-rewards summary: Get Daily Block Rewards description: Returns the amount of block rewards distributed to miners daily. PRO endpoint. tags: - Blocks - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyblockrewards' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' blockRewards_Eth: '15300.65625' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' blockRewards_Eth: '12954.84375' /?module=stats&action=dailyavgblocktime: get: operationId: get-daily-average-time-for-a-block-to-be-included-in-the-ethereum-blockchain externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-daily-average-time-for-a-block-to-be-included-in-the-ethereum-blockchain summary: Get Daily Average Time for A Block to be Included in the Ethereum Blockchain description: Returns the daily average of time needed for a block to be successfully mined. PRO endpoint. tags: - Blocks - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavgblocktime' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' blockTime_sec: '17.67' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' blockTime_sec: '19.61' /?module=stats&action=dailyuncleblkcount: get: operationId: get-daily-uncle-block-count-and-rewards externalDocs: url: https://docs.bscscan.com/api-endpoints/blocks#get-daily-uncle-block-count-and-rewards summary: Get Daily Uncle Block Count and Rewards description: Returns the number of 'Uncle' blocks mined daily and the amount of 'Uncle' block rewards. PRO endpoint. tags: - Blocks - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyuncleblkcount' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' uncleBlockCount: 287 uncleBlockRewards_Eth: '729.75' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' uncleBlockCount: 288 uncleBlockRewards_Eth: '691.5' /?module=logs&action=getLogs: get: operationId: get-event-logs-by-address externalDocs: url: https://docs.bscscan.com/api-endpoints/logs#get-event-logs-by-address summary: Get Event Logs by Address description: Returns the event logs from an address, with optional filtering by block range. tags: - Logs parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xbd3531da5cf5857e7cfaa92426877b022e612cf8' - in: query name: fromBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '12878196' - in: query name: toBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '12878196' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1Max1000' required: false example: '1000' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - address: '0xbd3531da5cf5857e7cfaa92426877b022e612cf8' topics: - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - '0x0000000000000000000000000000000000000000000000000000000000000000' - '0x000000000000000000000000c45a4b3b698f21f88687548e7f5a80df8b99d93d' - '0x00000000000000000000000000000000000000000000000000000000000000b5' data: 0x blockNumber: '0xc48174' timeStamp: '0x60f9ce56' gasPrice: '0x2e90edd000' gasUsed: '0x247205' logIndex: 0x transactionHash: '0x4ffd22d986913d33927a392fe4319bcd2b62f3afe1c15a2c59f77fc2cc4c20a9' transactionIndex: 0x - address: '0xbd3531da5cf5857e7cfaa92426877b022e612cf8' topics: - '0x645f26e653c951cec836533f8fe0616d301c20a17153debc17d7c3dbe4f32b28' - '0x00000000000000000000000000000000000000000000000000000000000000b5' data: 0x blockNumber: '0xc48174' timeStamp: '0x60f9ce56' gasPrice: '0x2e90edd000' gasUsed: '0x247205' logIndex: '0x1' transactionHash: '0x4ffd22d986913d33927a392fe4319bcd2b62f3afe1c15a2c59f77fc2cc4c20a9' transactionIndex: 0x /?module=logs&action=getLogs&get-event-logs-by-topics: get: operationId: get-event-logs-by-topics externalDocs: url: https://docs.bscscan.com/api-endpoints/logs#get-event-logs-by-topics summary: Get Event Logs by Topics description: Returns the events log in a block range, filtered by topics. tags: - Logs parameters: - in: query name: fromBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '12878196' - in: query name: toBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '12879196' - in: query name: topic schema: $ref: '#/components/schemas/Topic' required: true example: '' - in: query name: topicOperator schema: $ref: '#/components/schemas/TopicOperator' required: false example: '' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1Max1000' required: false example: '1000' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - address: '0xbd3531da5cf5857e7cfaa92426877b022e612cf8' topics: - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - '0x0000000000000000000000000000000000000000000000000000000000000000' - '0x000000000000000000000000c45a4b3b698f21f88687548e7f5a80df8b99d93d' - '0x00000000000000000000000000000000000000000000000000000000000000b5' data: 0x blockNumber: '0xc48174' timeStamp: '0x60f9ce56' gasPrice: '0x2e90edd000' gasUsed: '0x247205' logIndex: 0x transactionHash: '0x4ffd22d986913d33927a392fe4319bcd2b62f3afe1c15a2c59f77fc2cc4c20a9' transactionIndex: 0x - address: '0xbd3531da5cf5857e7cfaa92426877b022e612cf8' topics: - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - '0x0000000000000000000000000000000000000000000000000000000000000000' - '0x000000000000000000000000c45a4b3b698f21f88687548e7f5a80df8b99d93d' - '0x00000000000000000000000000000000000000000000000000000000000000b6' data: 0x blockNumber: '0xc48174' timeStamp: '0x60f9ce56' gasPrice: '0x2e90edd000' gasUsed: '0x247205' logIndex: '0x2' transactionHash: '0x4ffd22d986913d33927a392fe4319bcd2b62f3afe1c15a2c59f77fc2cc4c20a9' transactionIndex: 0x /?module=logs&action=getLogs&get-event-logs-by-address-filtered-by-topics: get: operationId: get-event-logs-by-address-filtered-by-topics externalDocs: url: https://docs.bscscan.com/api-endpoints/logs#get-event-logs-by-address-filtered-by-topics summary: Get Event Logs by Address filtered by Topics description: Returns the event logs from an address, filtered by topics and block range. tags: - Logs parameters: - in: query name: fromBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '15073139' - in: query name: toBlock schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '15074139' - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x59728544b08ab483533076417fbbb2fd0b17ce3a' - in: query name: topic schema: $ref: '#/components/schemas/Topic' required: true example: '' - in: query name: topicOperator schema: $ref: '#/components/schemas/TopicOperator' required: false example: '' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1Max1000' required: false example: '1000' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/ResultArrayOfObjects' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - address: '0x59728544b08ab483533076417fbbb2fd0b17ce3a' topics: - '0x27c4f0403323142b599832f26acd21c74a9e5b809f2215726e244a4ac588cd7d' - '0x00000000000000000000000023581767a106ae21c074b2276d25e5c3e136a68b' - '0x000000000000000000000000000000000000000000000000000000000000236d' - '0x000000000000000000000000c8a5592031f93debea5d9e67a396944ee01bb2ca' data: '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000f207539952d0000' blockNumber: '0xe60262' timeStamp: '0x62c26caf' gasPrice: '0x5e2d742c9' gasUsed: '0xfb7f8' logIndex: '0x4b' transactionHash: '0x26fe1a0a403fd44ef11ee72f3b4ceff590b6ea533684cb279cb4242be463304c' transactionIndex: '0x39' - address: '0x59728544b08ab483533076417fbbb2fd0b17ce3a' topics: - '0x27c4f0403323142b599832f26acd21c74a9e5b809f2215726e244a4ac588cd7d' - '0x00000000000000000000000023581767a106ae21c074b2276d25e5c3e136a68b' - '0x0000000000000000000000000000000000000000000000000000000000002261' - '0x000000000000000000000000c8a5592031f93debea5d9e67a396944ee01bb2ca' data: '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000de0b6b3a7640000' blockNumber: '0xe6035b' timeStamp: '0x62c27ab1' gasPrice: '0x27e523173' gasUsed: '0x3b86e' logIndex: '0x1d7' transactionHash: '0x3a299413cf2c91e376e542efcf3fc308c562da79af6e992401217cc6208c7f74' transactionIndex: '0x92' /?module=proxy&action=eth_blockNumber: get: operationId: eth_blocknumber externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_blocknumber summary: eth_blockNumber description: Returns the number of most recent block tags: - Geth/Parity Proxy parameters: [] responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_blockNumber' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 83 result: '0xc36b29' /?module=proxy&action=eth_getBlockByNumber: get: operationId: eth_getblockbynumber externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_getblockbynumber summary: eth_getBlockByNumber description: Returns information about a block by block number. tags: - Geth/Parity Proxy parameters: - in: query name: tag schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x10d4f' - in: query name: boolean schema: $ref: '#/components/schemas/Boolean' required: true example: 'true' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getBlockByNumber' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: baseFeePerGas: '0x5cfe76044' difficulty: '0x1b4ac252b8a531' extraData: '0xd883010a06846765746888676f312e31362e36856c696e7578' gasLimit: '0x1caa87b' gasUsed: '0x5f036a' hash: '0x396288e0ad6690159d56b5502a172d54baea649698b4d7af2393cf5d98bf1bb3' logsBloom: '0x5020418e211832c600000411c00098852850124700800500580d406984009104010420410c00420080414b044000012202448082084560844400d00002202b1209122000812091288804302910a246e25380282000e00002c00050009038cc205a018180028225218760100040820ac12302840050180448420420b000080000410448288400e0a2c2402050004024a240200415016c105844214060005009820302001420402003200452808508401014690208808409000033264a1b0d200c1200020280000cc0220090a8000801c00b0100a1040a8110420111870000250a22dc210a1a2002409c54140800c9804304b408053112804062088bd700900120' miner: '0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c' mixHash: '0xc547c797fb85c788ecfd4f5d24651bddf15805acbaad2c74b96b0b2a2317e66c' nonce: '0x04a99df972bd8412' number: '0xc63251' parentHash: '0xbb2d43395f93dab5c424421be22d874f8c677e3f466dc993c218fa2cd90ef120' receiptsRoot: '0x3de3b59d208e0fd441b6a2b3b1c814a2929f5a2d3016716465d320b4d48cc1e5' sha3Uncles: '0xee2e81479a983dd3d583ab89ec7098f809f74485e3849afb58c2ea8e64dd0930' size: '0x6cb6' stateRoot: '0x60fdb78b92f0e621049e0aed52957971e226a11337f633856d8b953a56399510' timestamp: '0x6110bab2' totalDifficulty: '0x612789b0aba90e580f8' transactions: - '0x40330c87750aa1ba1908a787b9a42d0828e53d73100ef61ae8a4d925329587b5' - '0x6fa2208790f1154b81fc805dd7565679d8a8cc26112812ba1767e1af44c35dd4' - '0xe31d8a1f28d4ba5a794e877d65f83032e3393809686f53fa805383ab5c2d3a3c' - '0xa6a83df3ca7b01c5138ec05be48ff52c7293ba60c839daa55613f6f1c41fdace' - '0x4e46edeb68a62dde4ed081fae5efffc1fb5f84957b5b3b558cdf2aa5c2621e17' - '0x356ee444241ae2bb4ce9f77cdbf98cda9ffd6da244217f55465716300c425e82' - '0x1a4ec2019a3f8b1934069fceff431e1370dcc13f7b2561fe0550cc50ab5f4bbc' - '0xad7994bc966aed17be5d0b6252babef3f56e0b3f35833e9ac414b45ed80dac93' transactionsRoot: '0xaceb14fcf363e67d6cdcec0d7808091b764b4428f5fd7e25fb18d222898ef779' uncles: - '0x9e8622c7bf742bdeaf96c700c07151c1203edaf17a38ea8315b658c2e6d873cd' /?module=proxy&action=eth_getUncleByBlockNumberAndIndex: get: operationId: eth_getunclebyblocknumberandindex externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_getunclebyblocknumberandindex summary: eth_getUncleByBlockNumberAndIndex description: Returns information about a uncle by block number. tags: - Geth/Parity Proxy parameters: - in: query name: tag schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0xC63276' - in: query name: index schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x0' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getUncleByBlockNumberAndIndex' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: baseFeePerGas: '0x65a42b13c' difficulty: '0x1b1457a8247bbb' extraData: '0x486976656f6e2063612d68656176792059476f6e' gasLimit: '0x1ca359a' gasUsed: '0xb48fe1' hash: '0x1da88e3581315d009f1cb600bf06f509cd27a68cb3d6437bda8698d04089f14a' logsBloom: '0xf1a360ca505cdda510d810c1c81a03b51a8a508ed601811084833072945290235c8721e012182e40d57df552cf00f1f01bc498018da19e008681832b43762a30c26e11709948a9b96883a42ad02568e3fcc3000004ee12813e4296498261619992c40e22e60bd95107c5bd8462fcca570a0095d52a4c24720b00f13a2c3d62aca81e852017470c109643b15041fd69742406083d67654fc841a18b405ab380e06a8c14c0138b6602ea8f48b2cd90ac88c3478212011136802900264718a085047810221225080dfb2c214010091a6f233883bb0084fa1c197330a10bb0006686e678b80e50e4328000041c218d1458880181281765d28d51066058f3f80a7822' miner: '0x1ad91ee08f21be3de0ba2ba6918e714da6b45836' mixHash: '0xa8e1dbbf073614c7ed05f44b9e92fbdb3e1d52575ed8167fa57f934210bbb0a2' nonce: '0x28cc3e5b7bee9866' number: '0xc63274' parentHash: '0x496dae3e722efdd9ee1eb69499bdc7ed0dca54e13cd1157a42811c442f01941f' receiptsRoot: '0x9c9a7a99b4af7607691a7f2a50d474290385c0a6f39c391131ea0c67307213f4' sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347' size: '0x224' stateRoot: '0xde9a11f0ee321390c1a7843cab7b9ffd3779d438bc8f77de4361dfe2807d7dee' timestamp: '0x6110bd1a' transactionsRoot: '0xa04a79e531db3ec373cb63e9ebfbc9c95525de6347958918a273675d4f221575' uncles: [] /?module=proxy&action=eth_getBlockTransactionCountByNumber: get: operationId: eth_getblocktransactioncountbynumber externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_getblocktransactioncountbynumber summary: eth_getBlockTransactionCountByNumber description: Returns the number of transactions in a block. tags: - Geth/Parity Proxy parameters: - in: query name: tag schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x10FB78' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getBlockTransactionCountByNumber' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x3' /?module=proxy&action=eth_getTransactionByHash: get: operationId: eth_gettransactionbyhash externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_gettransactionbyhash summary: eth_getTransactionByHash description: Returns the information about a transaction requested by transaction hash. tags: - Geth/Parity Proxy parameters: - in: query name: txhash schema: $ref: '#/components/schemas/TxHash' required: true example: '0xbc78ab8a9e9a0bca7d0321a27b2c03addeae08ba81ea98b03cd3dd237eabed44' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getTransactionByHash' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: blockHash: '0xf850331061196b8f2b67e1f43aaa9e69504c059d3d3fb9547b04f9ed4d141ab7' blockNumber: '0xcf2420' from: '0x00192fb10df37c9fb26829eb2cc623cd1bf599e8' gas: '0x5208' gasPrice: '0x19f017ef49' maxFeePerGas: '0x1f6ea08600' maxPriorityFeePerGas: '0x3b9aca00' hash: '0xbc78ab8a9e9a0bca7d0321a27b2c03addeae08ba81ea98b03cd3dd237eabed44' input: 0x nonce: '0x33b79d' to: '0xc67f4e626ee4d3f272c2fb31bad60761ab55ed9f' transactionIndex: '0x5b' value: '0x19755d4ce12c00' type: '0x2' accessList: [] chainId: '0x1' v: '0x0' r: '0xa681faea68ff81d191169010888bbbe90ec3eb903e31b0572cd34f13dae281b9' s: '0x3f59b0fa5ce6cf38aff2cfeb68e7a503ceda2a72b4442c7e2844d63544383e3' /?module=proxy&action=eth_getTransactionByBlockNumberAndIndex: get: operationId: eth_gettransactionbyblocknumberandindex externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_gettransactionbyblocknumberandindex summary: eth_getTransactionByBlockNumberAndIndex description: Returns information about a transaction by block number and transaction index position. tags: - Geth/Parity Proxy parameters: - in: query name: tag schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0xC6331D' - in: query name: index schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x11A' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getTransactionByBlockNumberAndIndex' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' result: accessList: [] blockHash: '0xdce94191f861842c2786e3594da0c0109707fd78409cab5f38e10eb87d0f301c' blockNumber: '0xa36e44' chainId: '0x3' condition: null creates: null from: '0xb910ae1db14a9fbc64ce175bdca6d3a743f690ab' gas: '0x186a0' gasPrice: '0x3b9aca09' hash: '0xf96ff62ba5aaf46cd824b6766f7fa6f6b9595b1dd4ef1d31bcf1f765047c2835' input: '0xd0e30db0' maxFeePerGas: '0x3b9aca12' maxPriorityFeePerGas: '0x3b9aca00' nonce: '0xc6' publicKey: '0x6dbf7068e19de8457c426a758a92ea54827ebd5b8467c3a1a5c4ac19bc7570457738fe496a40ea4e1f59d39d89636a430afdec0bf2a8060c6bf7d612bfe90ad3' r: '0xdecdc48821a06bf116e82b355d520dc5a44d6df98234e5344c16565b0b3dfdba' raw: '0x02f8750381c6843b9aca00843b9aca12830186a094c778417e063141139fce010982780140aa0cd5ab8502540be40084d0e30db0c001a0decdc48821a06bf116e82b355d520dc5a44d6df98234e5344c16565b0b3dfdbaa06b85bb6fd8153e86b50f0011787585e8c709a2a25e7ee3c2579572f07acfd42e' s: '0x6b85bb6fd8153e86b50f0011787585e8c709a2a25e7ee3c2579572f07acfd42e' to: '0xc778417e063141139fce010982780140aa0cd5ab' transactionIndex: '0xd' type: '0x2' v: '0x1' value: '0x2540be400' id: 1 /?module=proxy&action=eth_getTransactionCount: get: operationId: eth_gettransactioncount externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_gettransactioncount summary: eth_getTransactionCount description: Returns the number of transactions performed by an address. tags: - Geth/Parity Proxy parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x4bd5900Cb274ef15b153066D736bf3e83A9ba44e' - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getTransactionCount' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x44' /?module=proxy&action=eth_sendRawTransaction: get: operationId: eth_sendrawtransaction externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_sendrawtransaction summary: eth_sendRawTransaction description: Submits a pre-signed transaction for broadcast to the Ethereum network. tags: - Geth/Parity Proxy parameters: - in: query name: hex schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0xf904808000831cfde080' responses: '200': description: 'Operation result. ⛏️ Note: The result represents the transaction hash of the submitted raw transaction.Use eth_getTransactionReceipt to retrieve full details.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_sendRawTransaction' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: id: 1 jsonrpc: '2.0' result: '0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331a' /?module=proxy&action=eth_getTransactionReceipt: get: operationId: eth_gettransactionreceipt externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_gettransactionreceipt summary: eth_getTransactionReceipt description: Returns the receipt of a transaction by transaction hash. tags: - Geth/Parity Proxy parameters: - in: query name: txhash schema: $ref: '#/components/schemas/TxHash' required: true example: '0xadb8aec59e80db99811ac4a0235efa3e45da32928bcff557998552250fa672eb' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getTransactionReceipt' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: blockHash: '0x07c17710dbb7514e92341c9f83b4aab700c5dba7c4fb98caadd7926a32e47799' blockNumber: '0xcf2427' contractAddress: null cumulativeGasUsed: '0xeb67d5' effectiveGasPrice: '0x1a96b24c26' from: '0x292f04a44506c2fd49bac032e1ca148c35a478c8' gasUsed: '0xb41d' logs: - address: '0xdac17f958d2ee523a2206206994597c13d831ec7' topics: - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - '0x000000000000000000000000292f04a44506c2fd49bac032e1ca148c35a478c8' - '0x000000000000000000000000ab6960a6511ff18ed8b8c012cb91c7f637947fc0' data: '0x00000000000000000000000000000000000000000000000000000000013f81a6' blockNumber: '0xcf2427' transactionHash: '0xadb8aec59e80db99811ac4a0235efa3e45da32928bcff557998552250fa672eb' transactionIndex: '0x122' blockHash: '0x07c17710dbb7514e92341c9f83b4aab700c5dba7c4fb98caadd7926a32e47799' logIndex: '0xdb' removed: false logsBloom: '0x00000000000000000000000000000000000000000000000000000000000004000000000004000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000010000000001100000000000000000000000000000000000000000000000000000200100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' status: '0x1' to: '0xdac17f958d2ee523a2206206994597c13d831ec7' transactionHash: '0xadb8aec59e80db99811ac4a0235efa3e45da32928bcff557998552250fa672eb' transactionIndex: '0x122' type: '0x2' /?module=proxy&action=eth_call: get: operationId: eth_call externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_call summary: eth_call description: Executes a new message call immediately without creating a transaction on the block chain. tags: - Geth/Parity Proxy parameters: - in: query name: to schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xAEEF46DB4855E25702F8237E8f403FddcaF931C0' - in: query name: data schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x70a08231000000000000000000000000e16359506c028e51f16be38986ec5746251e9724' - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_call' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x00000000000000000000000000000000000000000000000000601d8888141c00' /?module=proxy&action=eth_getCode: get: operationId: eth_getcode externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_getcode summary: eth_getCode description: Returns code at a given address. tags: - Geth/Parity Proxy parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xf75e354c5edc8efed9b59ee9f67a80845ade7d0c' - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getCode' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x3660008037602060003660003473273930d21e01ee25e4c219b63259d214872220a261235a5a03f21560015760206000f3' /?module=proxy&action=eth_getStorageAt: get: operationId: eth_getstorageat externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_getstorageat summary: eth_getStorageAt description: Returns the value from a storage position at a given address. This endpoint is still experimental and may have potential issues tags: - Geth/Parity Proxy parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x6e03d9cce9d60f3e9f2597e13cd4c54c55330cfd' - in: query name: position schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x0' - in: query name: tag schema: $ref: '#/components/schemas/BlockTag' required: true example: latest responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_getStorageAt' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x0000000000000000000000003d0768da09ce77d25e2d998e6a7b6ed4b9116c2d' /?module=proxy&action=eth_gasPrice: get: operationId: eth_gasprice externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_gasprice summary: eth_gasPrice description: Returns the current price per gas in wei. tags: - Geth/Parity Proxy parameters: [] responses: '200': description: 'Operation result. 📖 Tip: The result is returned in wei.Easily convert Ethereum units using our unit converter.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_gasPrice' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 73 result: '0x430e23400' /?module=proxy&action=eth_estimateGas: get: operationId: eth_estimategas externalDocs: url: https://docs.bscscan.com/api-endpoints/geth-parity-proxy#eth_estimategas summary: eth_estimateGas description: Makes a call or transaction, which won't be added to the blockchain and returns the used gas. tags: - Geth/Parity Proxy parameters: - in: query name: data schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x4e71d92d' - in: query name: to schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xf0160428a8552ac9bb7e050d90eeade4ddd52843' - in: query name: value schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0xff22' - in: query name: gas schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x5f5e0ff' - in: query name: gasPrice schema: $ref: '#/components/schemas/Hex0xPrefixed' required: true example: '0x51da038cc' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ProxyResponseOK' - $ref: '#/components/schemas/Result.proxy.eth_estimateGas' - $ref: '#/components/schemas/ProxyResponseNOTOK' example: jsonrpc: '2.0' id: 1 result: '0x6556' /?module=stats&action=tokensupply: get: operationId: get-erc20-token-totalsupply-by-contractaddress externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-erc20-token-totalsupply-by-contractaddress summary: Get ERC20-Token TotalSupply by ContractAddress description: Returns the current amount of an ERC-20 token in circulation. tags: - Tokens parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x57d90b64a1a57749b0f932f1a3395792e12e7055' responses: '200': description: 'Operation result. 📈 Tip : The result is returned in the token''s smallest decimal representation.Eg. a token with a balance of 215.241526476136819398 and 18 decimal places will be returned as 215241526476136819398' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.tokensupply' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '21265524714464' /?module=account&action=tokenbalance: get: operationId: get-erc20-token-account-balance-for-tokencontractaddress externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-erc20-token-account-balance-for-tokencontractaddress summary: Get ERC20-Token Account Balance for TokenContractAddress description: Returns the current balance of an ERC-20 token of an address. tags: - Tokens parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x57d90b64a1a57749b0f932f1a3395792e12e7055' - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xe04f27eb70e025b78871a2ad7eabe85e61212761' responses: '200': description: 'Operation result. 📈 Tip : The result is returned in the token''s smallest decimal representation.Eg. a token with a balance of 215.241526476136819398 and 18 decimal places will be returned as 215241526476136819398' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.tokenbalance' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '135499' /?module=stats&action=tokensupplyhistory: get: operationId: get-historical-erc20-token-totalsupply-by-contractaddress-and-blockno externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-historical-erc20-token-totalsupply-by-contractaddress-and-blockno summary: Get Historical ERC20-Token TotalSupply by ContractAddress & BlockNo description: 'Returns the amount of an ERC-20 token in circulation at a certain block height. 📝 Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier. PRO endpoint.' tags: - Tokens - API PRO Endpoints parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x57d90b64a1a57749b0f932f1a3395792e12e7055' - in: query name: blockno schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '8000000' responses: '200': description: 'Operation result. 📈 Tip : The result is returned in the token''s smallest decimal representation.Eg. a token with a balance of 215.241526476136819398 and 18 decimal places will be returned as 215241526476136819398' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.tokensupplyhistory' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '21265524714464' /?module=account&action=tokenbalancehistory: get: operationId: get-historical-erc20-token-account-balance-for-tokencontractaddress-by-blockno externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-historical-erc20-token-account-balance-for-tokencontractaddress-by-blockno summary: Get Historical ERC20-Token Account Balance for TokenContractAddress by BlockNo description: 'Returns the balance of an ERC-20 token of an address at a certain block height. 📝 Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier. PRO endpoint.' tags: - Tokens - API PRO Endpoints parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x57d90b64a1a57749b0f932f1a3395792e12e7055' - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xe04f27eb70e025b78871a2ad7eabe85e61212761' - in: query name: blockno schema: $ref: '#/components/schemas/IntegerMin0' required: true example: '8000000' responses: '200': description: 'Operation result. 📈 Tip : The result is returned in the token''s smallest decimal representation.Eg. a token with a balance of 215.241526476136819398 and 18 decimal places will be returned as 215241526476136819398' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.tokenbalancehistory' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '135499' /?module=token&action=tokenholderlist: get: operationId: get-token-holder-list-by-contract-address externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-token-holder-list-by-contract-address summary: Get Token Holder List by Contract Address description: Return the current ERC20 token holders and number of tokens held. tags: - Tokens parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '10' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.token.tokenholderlist' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - TokenHolderAddress: '0x0000000000000000000000000000000000000000' TokenHolderQuantity: '34956' - TokenHolderAddress: '0x000000000000084e91743124a982076c59f10084' TokenHolderQuantity: '1' - TokenHolderAddress: '0x0000000000000d9054f605ca65a2647c2b521422' TokenHolderQuantity: '10000000' - TokenHolderAddress: '0x0000000000002d534ff79e9c69e7fcc742f0be83' TokenHolderQuantity: '5' - TokenHolderAddress: '0x0000000000003f5e74c1ba8a66b48e6f3d71ae82' TokenHolderQuantity: '1' /?module=token&action=tokeninfo: get: operationId: get-token-info-by-contractaddress externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-token-info-by-contractaddress summary: Get Token Info by ContractAddress description: 'Returns project information and social media links of an ERC20/ERC721/ERC1155 token. 📝 Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier. PRO endpoint.' tags: - Tokens - API PRO Endpoints parameters: - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x0e3a2a1f2146d86a604adc220b4967a898d7fe07' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.token.tokeninfo' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - contractAddress: '0x0e3a2a1f2146d86a604adc220b4967a898d7fe07' tokenName: Gods Unchained Cards symbol: CARD divisor: '0' tokenType: ERC721 totalSupply: '6962498' blueCheckmark: 'true' description: A TCG on the Ethereum blockchain that uses NFT's to bring real ownership to in-game assets. website: https://godsunchained.com/ email: '' blog: https://medium.com/@fuelgames reddit: https://www.reddit.com/r/GodsUnchained/ slack: '' facebook: https://www.facebook.com/godsunchained/ twitter: https://twitter.com/godsunchained bitcointalk: '' github: '' telegram: '' wechat: '' linkedin: '' discord: https://discordapp.com/invite/DKGr2pW whitepaper: '' tokenPriceUSD: '0.000000000000000000' /?module=account&action=addresstokenbalance: get: operationId: get-address-erc20-token-holding externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-address-erc20-token-holding summary: Get Address ERC20 Token Holding description: 'Returns the ERC-20 tokens and amount held by an address. Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier.' tags: - Tokens parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x983e3660c0bE01991785F80f266A84B911ab59b0' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.addresstokenbalance' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - TokenAddress: '0xffffffff2ba8f66d4e51811c5190992176930278' TokenName: Furucombo TokenSymbol: COMBO TokenQuantity: '1861606940000000000' TokenDivisor: '18' - TokenAddress: '0x53a1e9912323b8016424d6287286e3b6de263f76' TokenName: PUTIN Token TokenSymbol: PTT TokenQuantity: '3500000000000000000000' TokenDivisor: '18' - TokenAddress: '0xb753428af26e81097e7fd17f40c88aaa3e04902c' TokenName: Spice TokenSymbol: SFI TokenQuantity: '7' TokenDivisor: '18' - TokenAddress: '0x1b40183efb4dd766f11bda7a7c3ad8982e998421' TokenName: VesperToken TokenSymbol: VSP TokenQuantity: '962' TokenDivisor: '18' - TokenAddress: '0x37e83a94c6b1bdb816b59ac71dd02cf154d8111f' TokenName: PhotoChromic TokenSymbol: PHCR TokenQuantity: '4608452961264910063288' TokenDivisor: '18' /?module=account&action=addresstokennftbalance: get: operationId: get-address-erc721-token-holding externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-address-erc721-token-holding summary: Get Address ERC721 Token Holding description: 'Returns the ERC-721 tokens and amount held by an address. Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier.' tags: - Tokens parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x6b52e83941eb10f9c613c395a834457559a80114' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '100' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.addresstokennftbalance' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - TokenAddress: '0x49cf6f5d44e70224e2e23fdcdd2c053f30ada28b' TokenName: CloneX TokenSymbol: CloneX TokenQuantity: '52' - TokenAddress: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d' TokenName: BoredApeYachtClub TokenSymbol: BAYC TokenQuantity: '1' - TokenAddress: '0x60e4d786628fea6478f785a6d7e704777c86a7c6' TokenName: MutantApeYachtClub TokenSymbol: MAYC TokenQuantity: '1' - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenName: Azuki TokenSymbol: AZUKI TokenQuantity: '1' - TokenAddress: '0x7bd29408f11d2bfc23c34f18275bbf23bb716bc7' TokenName: Meebits TokenSymbol: ⚇ TokenQuantity: '1' /?module=account&action=addresstokennftinventory: get: operationId: get-address-erc721-token-inventory-by-contract-address externalDocs: url: https://docs.bscscan.com/api-endpoints/tokens#get-address-erc721-token-inventory-by-contract-address summary: Get Address ERC721 Token Inventory By Contract Address description: 'Returns the ERC-721 token inventory of an address, filtered by contract address. 📝 Note : This endpoint is throttled to 2 calls/second regardless of API Pro tier.' tags: - Tokens parameters: - in: query name: address schema: $ref: '#/components/schemas/AddressHash' required: true example: '0x123432244443b54409430979df8333f9308a6040' - in: query name: contractaddress schema: $ref: '#/components/schemas/AddressHash' required: true example: '0xed5af388653567af2f388e6224dc7c4b3241c544' - in: query name: page schema: $ref: '#/components/schemas/IntegerMin1' required: false example: '1' - in: query name: offset schema: $ref: '#/components/schemas/IntegerMin1Max1000' required: false example: '100' responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.account.addresstokennftinventory' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenId: '5401' - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenId: '7411' - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenId: '453' - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenId: '8080' - TokenAddress: '0xed5af388653567af2f388e6224dc7c4b3241c544' TokenId: '4255' /?module=gastracker&action=gasestimate: get: operationId: get-estimation-of-confirmation-time externalDocs: url: https://docs.bscscan.com/api-endpoints/gas-tracker#get-estimation-of-confirmation-time summary: Get Estimation of Confirmation Time description: Returns the estimated time, in seconds, for a transaction to be confirmed on the blockchain. tags: - Gas Tracker parameters: - in: query name: gasprice schema: $ref: '#/components/schemas/IntegerMin1' required: true example: '2000000000' responses: '200': description: 'Operation result. 📝 Note: The result is returned in seconds.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.gastracker.gasestimate' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '9227' /?module=gastracker&action=gasoracle: get: operationId: get-gas-oracle externalDocs: url: https://docs.bscscan.com/api-endpoints/gas-tracker#get-gas-oracle summary: Get Gas Oracle description: Returns the current Safe, Proposed and Fast gas prices. Post EIP-1559 🔥 changes :Safe/Proposed/Fast gas price recommendations are now modeled as Priority Fees.New field suggestBaseFee , the baseFee of the next pending blockNew field gasUsedRatio, to estimate how busy the network isLearn more about the gas changes in EIP-1559. tags: - Gas Tracker parameters: [] responses: '200': description: 'Operation result. ⛽ Note: The gas prices are returned in Gwei.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.gastracker.gasoracle' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: LastBlock: '13053741' SafeGasPrice: '20' ProposeGasPrice: '22' FastGasPrice: '24' suggestBaseFee: '19.230609716' gasUsedRatio: 0.370119078777807,0.8954731,0.550911766666667,0.212457033333333,0.552463633333333 /?module=stats&action=dailyavggaslimit: get: operationId: get-daily-average-gas-limit externalDocs: url: https://docs.bscscan.com/api-endpoints/gas-tracker#get-daily-average-gas-limit summary: Get Daily Average Gas Limit description: Returns the historical daily average gas limit of the Ethereum network. PRO endpoint. tags: - Gas Tracker - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavggaslimit' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' gasLimit: '8001360' - UTCDate: '2019-02-27' unixTimeStamp: '1551225600' gasLimit: '8001071' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' gasLimit: '8001137' /?module=stats&action=dailygasused: get: operationId: get-ethereum-daily-total-gas-used externalDocs: url: https://docs.bscscan.com/api-endpoints/gas-tracker#get-ethereum-daily-total-gas-used summary: Get Ethereum Daily Total Gas Used description: Returns the total amount of gas used daily for transctions on the Ethereum network. PRO endpoint. tags: - Gas Tracker - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailygasused' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' gasUsed: '32761450415' - UTCDate: '2019-02-27' unixTimeStamp: '1551225600' gasUsed: '32657440136' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' gasUsed: '33081119561' /?module=stats&action=dailyavggasprice: get: operationId: get-daily-average-gas-price externalDocs: url: https://docs.bscscan.com/api-endpoints/gas-tracker#get-daily-average-gas-price summary: Get Daily Average Gas Price description: Returns the daily average gas price used on the Ethereum network. PRO endpoint. tags: - Gas Tracker - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavggasprice' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' maxGasPrice_Wei: '60814303896257' minGasPrice_Wei: '432495' avgGasPrice_Wei: '13234562600' - UTCDate: '2019-02-27' unixTimeStamp: '1551225600' maxGasPrice_Wei: '42000000000000' minGasPrice_Wei: '1000000' avgGasPrice_Wei: '16334617513' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' maxGasPrice_Wei: '237222222222257' minGasPrice_Wei: '100000000' avgGasPrice_Wei: '18834674068' /?module=stats&action=ethsupply: get: operationId: get-total-supply-of-ether externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-total-supply-of-ether summary: Get Total Supply of Ether description: Returns the current amount of Ether in circulation excluding ETH2 Staking rewards and EIP1559 burnt fees. tags: - Stats parameters: [] responses: '200': description: 'Operation result. 📖 Tip : Easily convert Ethereum units using our unit converter.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.ethsupply' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: '116487067186500000000000000' /?module=stats&action=ethsupply2: get: operationId: get-total-supply-of-ether-2 externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-total-supply-of-ether-2 summary: Get Total Supply of Ether 2 description: Returns the current amount of Ether in circulation, ETH2 Staking rewards, EIP1559 burnt fees, and total withdrawn ETH from the beacon chain. tags: - Stats parameters: [] responses: '200': description: 'Operation result. 📝 Note: The EthSupply is calculated before adding ETH minted as Eth2Staking rewards and subtracting BurntFees from EIP-1559. For more information, check out our Ether Total Supply Dashboard.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.ethsupply2' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: EthSupply: '122373866217800000000000000' Eth2Staking: '1157529105115885000000000' BurntFees: '3102505506455601519229842' WithdrawnTotal: '1170200333006131000000000' /?module=stats&action=ethprice: get: operationId: get-ether-last-price externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-ether-last-price summary: Get Ether Last Price description: Returns the latest price of 1 ETH. tags: - Stats parameters: [] responses: '200': description: 'Operation result. ⏳ Tip : The timestamps are represented in Unix timestamp.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.ethprice' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: ethbtc: '0.06116' ethbtc_timestamp: '1624961308' ethusd: '2149.18' ethusd_timestamp: '1624961308' /?module=stats&action=chainsize: get: operationId: get-ethereum-nodes-size externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-ethereum-nodes-size summary: Get Ethereum Nodes Size description: Returns the size of the Ethereum blockchain, in bytes, over a date range. tags: - Stats parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: clienttype schema: $ref: '#/components/schemas/ClientType' required: true example: geth - in: query name: syncmode schema: $ref: '#/components/schemas/SyncMode' required: true example: default - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: 'Operation result. ⛓️ Tip : The chainSize is represented in bytes.' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.chainsize' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - blockNumber: '7156164' chainTimeStamp: '2019-02-01' chainSize: '184726421279' clientType: Geth syncMode: Default - blockNumber: '7276521' chainTimeStamp: '2019-02-28' chainSize: '197073145113' clientType: Geth syncMode: Default /?module=stats&action=nodecount: get: operationId: get-total-nodes-count externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-total-nodes-count summary: Get Total Nodes Count description: Returns the total number of discoverable Ethereum nodes. tags: - Stats parameters: [] responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.nodecount' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: UTCDate: '2021-06-29' TotalNodeCount: '6413' /?module=stats&action=dailytxnfee: get: operationId: get-daily-network-transaction-fee externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-network-transaction-fee summary: Get Daily Network Transaction Fee description: Returns the amount of transaction fees paid to miners per day. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: [] responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailytxnfee' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' transactionFee_Eth: '358.558440870590355682' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' transactionFee_Eth: '545.141762162356907132' /?module=stats&action=dailynewaddress: get: operationId: get-daily-new-address-count externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-new-address-count summary: Get Daily New Address Count description: Returns the number of new Ethereum addresses created per day. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailynewaddress' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' newAddressCount: 54081 - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' newAddressCount: 53117 /?module=stats&action=dailynetutilization: get: operationId: get-daily-network-utilization externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-network-utilization summary: Get Daily Network Utilization description: Returns the daily average gas used over gas limit, in percentage. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailynetutilization' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' networkUtilization: '0.8464' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' networkUtilization: '0.9472' /?module=stats&action=dailyavghashrate: get: operationId: get-daily-average-network-hash-rate externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-average-network-hash-rate summary: Get Daily Average Network Hash Rate description: Returns the historical measure of processing power of the Ethereum network. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: 'Operation result. 🔥 Tip : The networkHashRate is represented in GigaHashes ( GH/s ).' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavghashrate' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' networkHashRate: '143116.0140' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' networkHashRate: '157689.3983' /?module=stats&action=dailytx: get: operationId: get-daily-transaction-count externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-transaction-count summary: Get Daily Transaction Count description: Returns the number of transactions performed on the Ethereum blockchain per day. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: Operation result. content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailytx' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' transactionCount: 498856 - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' transactionCount: 541458 /?module=stats&action=dailyavgnetdifficulty: get: operationId: get-daily-average-network-difficulty externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-daily-average-network-difficulty summary: Get Daily Average Network Difficulty description: Returns the historical mining difficulty of the Ethereum network. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: 'Operation result. ​​ 🔥 Tip : The networkDifficulty is represented in TeraHashes ( TH/s ).' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.dailyavgnetdifficulty' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' networkDifficulty: 2,408.028 - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' networkDifficulty: 2,927.453 /?module=stats&action=ethdailymarketcap: get: operationId: get-ether-historical-daily-market-cap externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-ether-historical-daily-market-cap summary: Get Ether Historical Daily Market Cap description: Returns the historical Ether daily market capitalization. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: 'Operation result. ​​ 💰 Tip : The marketCap is represented in million US Dollars ( USD ).' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.ethdailymarketcap' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' supply: '104672819.281250' marketCap: '11203.1318476721875' price: '107.03' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' supply: '105048576.406250' marketCap: '14317.0704784078125' price: '136.29' /?module=stats&action=ethdailyprice: get: operationId: get-ether-historical-price externalDocs: url: https://docs.bscscan.com/api-endpoints/stats-1#get-ether-historical-price summary: Get Ether Historical Price description: Returns the historical price of 1 ETH. PRO endpoint. tags: - Stats - API PRO Endpoints parameters: - in: query name: startdate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-01' - in: query name: enddate schema: $ref: '#/components/schemas/DateYYYYMMDD' required: true example: '2019-02-28' - in: query name: sort schema: $ref: '#/components/schemas/PageSort' required: false example: asc responses: '200': description: 'Operation result. ​​ 💰 Tip : The value is represented in US Dollars ( USD ).' content: application/json: schema: oneOf: - allOf: - $ref: '#/components/schemas/ResponseOK' - $ref: '#/components/schemas/Result.stats.ethdailyprice' - $ref: '#/components/schemas/ResponseNOTOK' example: status: '1' message: OK result: - UTCDate: '2019-02-01' unixTimeStamp: '1548979200' value: '107.03' - UTCDate: '2019-02-28' unixTimeStamp: '1551312000' value: '136.29' components: schemas: ArrayOfObjects: type: array items: type: object additionalProperties: true ResultArrayOfObjects: type: object properties: result: $ref: '#/components/schemas/ArrayOfObjects' AddressHash: type: string pattern: 0x[A-Fa-f0-9]{40} example: '0x01234567890abcdef01234567890abcdef012345' Boolean: type: boolean BlockTag: type: string enum: - earliest - latest - pending BlockType: type: string enum: - blocks - uncles BlockClosest: type: string enum: - before - after Hex0xPrefixed: type: string pattern: ^0x[0-9a-fA-F]+$ description: A hexadecimal number starting with '0x'. IntegerMin0: type: integer minimum: 0 IntegerMin0String: type: string pattern: '[0-9]+' description: An integer greater than 0 represented as a string. FloatString: type: string pattern: ^\d+(\.\d+)?$ description: A float represented as a string. FloatWithCommasString: type: string pattern: ^\d{1,3}(,?\d{3})*(\.\d+)?$ description: A float represented as a string, with optional comma delimiters FloatCsvString: type: string description: A comma-separated list of float values, represented as a string. pattern: ^(\d+(\.\d+)?)(,\d+(\.\d+)?)*$ IntegerMin1: type: integer minimum: 1 IntegerMin1Max1000: type: integer format: int32 minimum: 1 maximum: 1000 PageSort: type: string enum: - asc - desc TxHash: type: string pattern: 0x[A-Fa-f0-9]{64} example: '0x01234567890abcdef01234567890abcdef01234567890abcdef01234567890ab' CodeFormat: type: string description: single file -- use `solidity-single-file`; JSON file ( recommended ) -- use `solidity-standard-json-input` enum: - solidity-single-file - solidity-standard-json-input GUID: type: string pattern: '[a-z0-9]{50}' example: x3ryqcqr1zdknhfhkimqmiabcdfxncqc6nrvp3pgrcpfsqedqi UnixTimestamp: type: integer format: int64 description: A Unix timestamp representing the number of seconds since January 1, 1970 example: 1623338323 minimum: 0 UnixTimestampString: type: string description: A Unix timestamp representing the number of seconds since January 1, 1970, expressed as a string. pattern: ^[0-9]+$ example: '1623338323' DateYYYYMMDD: type: string format: date description: A date in the YYYY-MM-DD format example: '2019-02-01' Topic: type: string enum: - topic0 - topic1 - topic2 - topic3 TopicOperator: type: string enum: - and - or ClientType: type: string enum: - geth - Geth - parity - Parity SyncMode: type: string enum: - default - Default - archive - Archive ChainId: type: integer summary: the chain to submit verification, such as 1 for mainnet enum: - 1 - 5 - 11155111 - 17000 - 56 - 97 - 204 - 5611 - 250 - 4002 - 10 - 420 - 11155420 - 137 - 42161 - 421614 - 1284 - 1287 - 1285 - 199 - 1028 - 42220 - 44787 - 100 - 42170 - 8453 - 84532 - 1101 - 59144 - 59140 - 534352 - 534351 - 1111 - 1112 - 255 - 2358 - 252 - 2522 - 43114 - 43113 - 81457 - 23888 description: | | Explorer | Chain ID | |-----------------------------|----------| | Etherscan | 1 | | Goerli Etherscan | 5 | | Sepolia Etherscan | 11155111 | | Holesky Etherscan | 17000 | | BscScan | 56 | | Testnet BscScan | 97 | | opBNB BscScan | 204 | | Testnet opBNB BscScan | 5611 | | FTMScan | 250 | | Testnet FTMScan | 4002 | | Optimistic Etherscan | 10 | | Goerli Optimistic Etherscan | 420 | | Sepolia Optimistic Etherscan| 11155420 | | PolygonScan | 137 | | Arbiscan | 42161 | | Sepolia Arbiscan | 421614 | | Moonbeam Moonscan | 1284 | | Moonbase Moonscan | 1287 | | Moonriver Moonscan | 1285 | | BTTCScan | 199 | | Donau BTTCScan | 1028 | | CeloScan | 42220 | | Alfajores CeloScan | 44787 | | GnosisScan | 100 | | Nova Arbiscan | 42170 | | BaseScan | 8453 | | Sepolia BaseScan | 84532 | | zkEVM PolygonScan | 1101 | | LineaScan | 59144 | | Testnet LineaScan | 59140 | | ScrollScan | 534352 | | Testnet ScrollScan | 534351 | | WemixScan | 1111 | | Testnet WemixScan | 1112 | | KromaScan | 255 | | Testnet KromaScan | 2358 | | Fraxscan | 252 | | Testnet Fraxscan | 2522 | | SnowScan | 43114 | | Fuji SnowScan | 43113 | | BlastScan | 81457 | | Testnet BlastScan | 23888 | ProxyResponseErrorCode: type: integer description: | | Code | Message | Description | |---------|------------------------------------|-------------------------------------------------------------------------------------------------------| | -32700 | Parse error | Invalid JSON | | -32600 | Invalid request | This can happen when your request is malformed. Additionally, some of the providers use this code to signal that a particular method is not available or requires switching to a paid tier. | | -32601 | Method not found | This usually happens when the method is not available with a given provider. If you need to use a specific method that's not supported by the provider, try changing the provider or consider switching to a more expensive tier. | | -32602 | Invalid params | This happens when the request parameters are invalid. To fix, double check the parameters that you pass with the request and make sure they comply with the spec. | | -32603 | Internal error | This might happen when the node reverts during the request execution. This can also happen if the request is malformed or invalid. | | -32000 | Invalid input | Missing or invalid parameters | | -32001 | Resource not found | This usually happens when calling a method that's not supported. Try using a different method or switch providers. | | -32002 | Resource unavailable | Requested resource not available | | -32003 | Transaction rejected | Transaction creation failed | | -32004 | Method not supported | Method is not implemented | | -32005 | Limit exceeded | Request exceeds defined limit | | -32006 | JSON-RPC version not supported | Version of JSON-RPC protocol is not supported | enum: - -32700 - -32600 - -32601 - -32602 - -32603 - -32000 - -32001 - -32002 - -32003 - -32004 - -32005 - -32006 ProxyResponseOK: type: object properties: jsonrpc: type: string const: '2.0' id: $ref: '#/components/schemas/IntegerMin1' result: description: call result required: - jsonrpc - id - result ProxyResponseNOTOK: type: object properties: jsonrpc: type: string const: '2.0' id: $ref: '#/components/schemas/IntegerMin1' error: type: object properties: code: $ref: '#/components/schemas/ProxyResponseErrorCode' message: type: string required: - code - message required: - jsonrpc - id - error ResponseOK: type: object properties: status: type: string enum: - '1' message: type: string enum: - OK result: description: call result required: - status - message - result ResponseNOTOK: type: object properties: status: type: string enum: - '0' message: type: string pattern: ^NOTOK(-.*)?$ examples: - NOTOK - NOTOK-Missing/Invalid API Key, rate limit of 1/5sec applied result: type: string required: - status - message - result Post.contract.verifysourcecode: type: object properties: chainId: $ref: '#/components/schemas/ChainId' codeformat: $ref: '#/components/schemas/CodeFormat' sourceCode: type: string description: the Solidity source code constructorArguements: type: string description: optional, include if your contract uses constructor arguments contractaddress: $ref: '#/components/schemas/AddressHash' contractname: type: string description: the name of your contract, such as contracts/Verified.sol:Verified compilerversion: type: string description: compiler version used, such as v0.8.24+commit.e11b9ed9 required: - chainId - codeformat - sourceCode - contractaddress - contractname - compilerversion Result.account.balance: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.account.balancemulti: type: object properties: result: type: array items: type: object properties: account: $ref: '#/components/schemas/AddressHash' balance: $ref: '#/components/schemas/IntegerMin0String' Result.account.txlist: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.txlistinternal: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.tokentx: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.tokennfttx: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.token1155tx: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.getminedblocks: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.txsBeaconWithdrawal: $ref: '#/components/schemas/ResultArrayOfObjects' Result.account.balancehistory: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.contract.getabi: type: object properties: result: type: string Result.contract.getsourcecode: $ref: '#/components/schemas/ResultArrayOfObjects' Result.contract.getcontractcreation: type: object properties: result: type: array items: type: object properties: contractAddress: $ref: '#/components/schemas/AddressHash' contractCreator: $ref: '#/components/schemas/AddressHash' txHash: $ref: '#/components/schemas/TxHash' Result.contract.verifysourcecode: type: object properties: result: $ref: '#/components/schemas/GUID' Result.contract.checkverifystatus: type: object properties: result: type: string const: Pass - Verified Result.transaction.getstatus: type: object additionalProperties: true Result.transaction.gettxreceiptstatus: type: object additionalProperties: true Result.block.getblockreward: type: object additionalProperties: true Result.block.getblockcountdown: type: object properties: result: type: object properties: CurrentBlock: $ref: '#/components/schemas/IntegerMin0String' CountdownBlock: $ref: '#/components/schemas/IntegerMin0String' RemainingBlock: $ref: '#/components/schemas/IntegerMin0String' EstimateTimeInSec: $ref: '#/components/schemas/FloatString' Result.block.getblocknobytime: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.stats.dailyavgblocksize: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' blockSize_bytes: $ref: '#/components/schemas/IntegerMin0' Result.stats.dailyblkcount: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' blockCount: $ref: '#/components/schemas/IntegerMin0' blockRewards_Eth: $ref: '#/components/schemas/FloatString' Result.stats.dailyblockrewards: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' blockRewards_Eth: $ref: '#/components/schemas/FloatString' Result.stats.dailyavgblocktime: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' blockTime_sec: $ref: '#/components/schemas/FloatString' Result.stats.dailyuncleblkcount: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' uncleBlockCount: $ref: '#/components/schemas/IntegerMin0' uncleBlockRewards_Eth: $ref: '#/components/schemas/FloatString' Result.logs.getLogs: $ref: '#/components/schemas/ResultArrayOfObjects' Result.stats.tokensupply: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.account.tokenbalance: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.stats.tokensupplyhistory: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.account.tokenbalancehistory: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.token.tokenholderlist: type: object properties: result: type: array items: type: object properties: TokenHolderAddress: $ref: '#/components/schemas/AddressHash' TokenHolderQuantity: $ref: '#/components/schemas/IntegerMin0String' Result.token.tokeninfo: type: object properties: result: type: array items: type: object additionalProperties: true maxItems: 1 Result.account.addresstokenbalance: type: object properties: result: type: array items: type: object properties: TokenAddress: $ref: '#/components/schemas/AddressHash' TokenName: type: string TokenSymbol: type: string TokenQuantity: $ref: '#/components/schemas/IntegerMin0String' TokenDivisor: $ref: '#/components/schemas/IntegerMin0String' Result.account.addresstokennftbalance: type: object properties: result: type: array items: type: object properties: TokenAddress: $ref: '#/components/schemas/AddressHash' TokenName: type: string TokenSymbol: type: string TokenQuantity: $ref: '#/components/schemas/IntegerMin0String' Result.account.addresstokennftinventory: type: object properties: result: type: array items: type: object properties: TokenAddress: $ref: '#/components/schemas/AddressHash' TokenId: $ref: '#/components/schemas/IntegerMin0String' Result.gastracker.gasestimate: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.gastracker.gasoracle: type: object properties: result: type: object properties: LastBlock: $ref: '#/components/schemas/IntegerMin0String' SafeGasPrice: $ref: '#/components/schemas/IntegerMin0String' ProposeGasPrice: $ref: '#/components/schemas/IntegerMin0String' FastGasPrice: $ref: '#/components/schemas/IntegerMin0String' suggestBaseFee: $ref: '#/components/schemas/FloatString' gasUsedRatio: $ref: '#/components/schemas/FloatCsvString' Result.stats.dailyavggaslimit: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' gasLimit: $ref: '#/components/schemas/IntegerMin0String' Result.stats.dailygasused: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' gasUsed: $ref: '#/components/schemas/IntegerMin0String' Result.stats.dailyavggasprice: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' maxGasPrice_Wei: $ref: '#/components/schemas/IntegerMin0String' minGasPrice_Wei: $ref: '#/components/schemas/IntegerMin0String' avgGasPrice_Wei: $ref: '#/components/schemas/IntegerMin0String' Result.stats.ethsupply: type: object properties: result: $ref: '#/components/schemas/IntegerMin0String' Result.stats.ethsupply2: type: object properties: result: type: object properties: EthSupply: $ref: '#/components/schemas/IntegerMin0String' Eth2Staking: $ref: '#/components/schemas/IntegerMin0String' BurntFees: $ref: '#/components/schemas/IntegerMin0String' WithdrawnTotal: $ref: '#/components/schemas/IntegerMin0String' Result.stats.ethprice: type: object properties: result: type: object properties: ethbtc: $ref: '#/components/schemas/FloatString' ethbtc_timestamp: $ref: '#/components/schemas/UnixTimestampString' ethusd: $ref: '#/components/schemas/FloatString' ethusd_timestamp: $ref: '#/components/schemas/UnixTimestampString' Result.stats.chainsize: type: object properties: result: type: array items: type: object properties: blockNumber: $ref: '#/components/schemas/IntegerMin0String' chainTimeStamp: $ref: '#/components/schemas/DateYYYYMMDD' chainSize: $ref: '#/components/schemas/IntegerMin0String' clientType: $ref: '#/components/schemas/ClientType' syncMode: $ref: '#/components/schemas/SyncMode' Result.stats.nodecount: type: object properties: result: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' TotalNodeCount: $ref: '#/components/schemas/IntegerMin0String' Result.stats.dailytxnfee: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' transactionFee_Eth: $ref: '#/components/schemas/FloatString' Result.stats.dailynewaddress: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' newAddressCount: $ref: '#/components/schemas/IntegerMin0' Result.stats.dailynetutilization: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' networkUtilization: $ref: '#/components/schemas/FloatString' Result.stats.dailyavghashrate: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' networkHashRate: $ref: '#/components/schemas/FloatString' Result.stats.dailytx: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' transactionCount: $ref: '#/components/schemas/IntegerMin0' Result.stats.dailyavgnetdifficulty: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' networkDifficulty: $ref: '#/components/schemas/FloatWithCommasString' Result.stats.ethdailymarketcap: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' supply: $ref: '#/components/schemas/FloatString' marketCap: $ref: '#/components/schemas/FloatString' price: $ref: '#/components/schemas/FloatString' Result.stats.ethdailyprice: type: object properties: result: type: array items: type: object properties: UTCDate: $ref: '#/components/schemas/DateYYYYMMDD' unixTimeStamp: $ref: '#/components/schemas/UnixTimestampString' value: $ref: '#/components/schemas/FloatString' Result.proxy.eth_blockNumber: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_getBlockByNumber: type: object additionalProperties: true Result.proxy.eth_getUncleByBlockNumberAndIndex: type: object additionalProperties: true Result.proxy.eth_getBlockTransactionCountByNumber: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_getTransactionByHash: type: object additionalProperties: true Result.proxy.eth_getTransactionByBlockNumberAndIndex: type: object additionalProperties: true Result.proxy.eth_getTransactionCount: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_sendRawTransaction: type: object properties: result: $ref: '#/components/schemas/TxHash' Result.proxy.eth_getTransactionReceipt: type: object additionalProperties: true Result.proxy.eth_call: type: object properties: result: $ref: '#/components/schemas/TxHash' Result.proxy.eth_getCode: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_getStorageAt: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_gasPrice: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' Result.proxy.eth_estimateGas: type: object properties: result: $ref: '#/components/schemas/Hex0xPrefixed' securitySchemes: apiKeyAuth: type: apiKey in: query name: apikey