teckel: Web3 Infrastructure Services
teckel offers web3 infrastructure services, without subscription, on a utilization-based pricing model, resulting in up to a 75% savings. See our pricing…
NFTs require IPFS and Ethereum RPC servers. teckel has deployed a distributed network of both. We have spare capacity in this infrastructure which we offer to the web3 community at competitive rates. To access teckel Web3 Services, download the teckel App.
Ethereum RPC Servers
teckel hosts a suite of ethereum nodes located in Western Europe. To help ensure the decentralized integrity of the ethereum network, these nodes are not hosted in cloud data-centers but in small clusters located in dedicated data-centers. The teckel nodes are “full sync” nodes meaning that they contain data for only the last 128 blocks. They are not “archive” nodes and so cannot be used for interrogating the blockchain back to the genesis block.
These nodes have their json-rpc endpoints enabled, facilitating access from external developers on a pay-as-you-go basis. Access to these endpoints is protected by API keys which are allocated to the developers’ ethereum addresses. Developers can manage their API keys via the teckel App (or teckel App Store Edition). Developers pay for API usage via teckel credits (tc) which can be purchased via the teckel App using ETH (or teckel App Store Edition using fiat currencies).
API Service Status
The current status of the API service is available via the teckel App (or teckel App Store Edition), updated in real-time. In the App, navigate to Settings → API Status.
Example Usage
To use the teckel Ethereum endpoint API, do the following:
1. Install the teckel App (or teckel App Store Edition) and create (or import) an Ethereum Account.
2. Navigate to the Accounts page by tapping on the wallet icon in the upper right corner of the App home screen. Access the API Key Manager for the created or imported Ethereum Account by tapping “Manage API Key” on the Accounts page as seen below:
3. For illustrative purposes, we will use the following fake key d1e12345-c234-45a6-9b76-1234567891ff in the examples presented below. You would substitute your actual API key in place of this fake key.
Ethereum MAINNET Example Call
How to use the API (in both http and wss flavors) to call the net_peerCount method against the Ethereum MAINNET node suite:
HTTP via curl (on linux):
Call:
curl --location 'https://api.tkllabs.io/rpc_eth/mainnet/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"method":"net_peerCount",
"params":[],
"id":74
}'
Response:
{"jsonrpc":"2.0","id":74,"result":"0x31"}
WSS via wscat (on linux):
Call:
wscat -c wss://api.tkllabs.io/ws_eth/mainnet/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff
Response:
Connected (press CTRL+C to quit)>
Call:
{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}
Response:
< {"jsonrpc":"2.0","id":74,"result":"0x32"}
Ethereum SEPOLIA TESTNET Example Call
How to use the API (in both http and wss flavors) to call the net_peerCount method against the Ethereum SEPOLIA TESTNET node suite:
HTTP via curl (on linux):
Call:
curl --location 'https://api.tkllabs.io/rpc_eth/sepolia/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"method":"net_peerCount",
"params":[],
"id":74
}'
Response:
{"jsonrpc":"2.0","result":"0x1d","id":74}
WSS via wscat (on linux):
Call:
wscat -c wss://api.tkllabs.io/ws_eth/sepolia/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff
Response:
Connected (press CTRL+C to quit)>
Call:
{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}
Response:
< {"jsonrpc":"2.0","result":"0x1d","id":74}
Note on API Key Security
The Ethereum-RPC endpoint calls have the API key embedded in the query-string. We accept that this is not best practice from a security perspective — it is preferable to use headers, etc. — since the key can become compromised more easily. However, we have adopted this pattern to provide maximum compatibility with third-party web3/Ethereum code libraries which still expect this format.
Should you have concerns that your API key has been compromised (and someone else may be consuming your teckel credits by using your key), simply replace the key via the API Key Manager → "Replace API Key" in the teckel App (or teckel App Store Edition). The old key will then be immediately disabled.
RPC Call Pricing
The price of a given API call depends on the complexity of the blockchain function being evoked. The following table lists all the available functions and the corresponding price per call. The same prices apply to MAINNET and SEPOLIA TESTNET calls.
The Base Call Fee is two (2) teckel credits (tc).
Method Name | Price/Call (in multiples of Base Call Fee) |
---|---|
net_peerCount | 1 |
eth_getUncleCountByBlockNumber | 1.02 |
eth_blockNumber | 1.03 |
eth_syncing | 1.03 |
eth_signTransaction | 1.05 |
eth_getCode | 1.05 |
eth_gasPrice | 1.05 |
eth_getTransactionByBlockNumberAndIndex | 1.07 |
eth_getBlockTransactionCountByHash | 1.07 |
eth_getTransactionByBlockHashAndIndex | 1.08 |
eth_getBalance | 1.08 |
eth_newFilter | 1.09 |
eth_sendRawTransaction | 1.09 |
eth_sendTransaction | 1.09 |
eth_getFilterChanges | 1.09 |
eth_uninstallFilter | 1.1 |
eth_getFilterLogs | 1.1 |
eth_getTransactionCount | 1.11 |
eth_getBlockByHash | 1.11 |
eth_getUncleCountByBlockHash | 1.12 |
eth_call | 1.13 |
eth_coinbase | 1.14 |
eth_accounts | 1.14 |
eth_sign | 1.15 |
eth_newBlockFilter | 1.2 |
eth_getTransactionReceipt | 1.2 |
eth_blobBaseFee | 1.21 |
eth_getTransactionByHash | 1.21 |
eth_getProof | 1.21 |
eth_chainId | 1.23 |
eth_getBlockByNumber | 1.24 |
eth_newPendingTransactionFilter | 1.26 |
eth_createAccessList | 1.3 |
eth_getBlockTransactionCountByNumber | 1.32 |
eth_estimateGas | 1.32 |
eth_maxPriorityFeePerGas | 1.32 |
eth_feeHistory | 1.45 |
eth_getLogs | 1.45 |
eth_getStorageAt | 1.68 |
eth_getBlockReceipts | 2.3 |