openapi: 3.1.0
info:
title: Basescan API
version: 1.0.0
description: Basescan is the leading blockchain explorer, search, API and analytics platform for Base (L2), an Ethereum Layer 2 network. Powered by the Etherscan team and compatible with the unified Etherscan API V2 platform using chain ID 8453 for Base network access.
license:
name: UNLICENSED
url: https://docs.basescan.org/
servers:
- url: https://api.basescan.org/api
description: Base Mainnet Endpoint
- url: https://api-sepolia.basescan.org/api
description: Base Sepolia Testnet Endpoint
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.basescan.org/
paths:
/?module=account&action=balance:
get:
operationId: get-ether-balance-for-a-single-address
externalDocs:
url: https://docs.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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.etherscan.io/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