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.

teckel App Settings
teckel 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:

teckel Ethereum Account Admin
API Key Manager

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):

content_copy check

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):

content_copy check

Call:

wscat -c wss://api.tkllabs.io/ws_eth/mainnet/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff

Response:

Connected (press CTRL+C to quit)
>
content_copy check

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):

content_copy check

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):

content_copy check

Call:

wscat -c wss://api.tkllabs.io/ws_eth/sepolia/full?APIKEY=d1e12345-c234-45a6-9b76-1234567891ff

Response:

Connected (press CTRL+C to quit)
>
content_copy check

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_peerCount1
eth_getUncleCountByBlockNumber1.02
eth_blockNumber1.03
eth_syncing1.03
eth_signTransaction1.05
eth_getCode1.05
eth_gasPrice1.05
eth_getTransactionByBlockNumberAndIndex1.07
eth_getBlockTransactionCountByHash1.07
eth_getTransactionByBlockHashAndIndex1.08
eth_getBalance1.08
eth_newFilter1.09
eth_sendRawTransaction1.09
eth_sendTransaction1.09
eth_getFilterChanges1.09
eth_uninstallFilter1.1
eth_getFilterLogs1.1
eth_getTransactionCount1.11
eth_getBlockByHash1.11
eth_getUncleCountByBlockHash1.12
eth_call1.13
eth_coinbase1.14
eth_accounts1.14
eth_sign1.15
eth_newBlockFilter1.2
eth_getTransactionReceipt1.2
eth_blobBaseFee1.21
eth_getTransactionByHash1.21
eth_getProof1.21
eth_chainId1.23
eth_getBlockByNumber1.24
eth_newPendingTransactionFilter1.26
eth_createAccessList1.3
eth_getBlockTransactionCountByNumber1.32
eth_estimateGas1.32
eth_maxPriorityFeePerGas1.32
eth_feeHistory1.45
eth_getLogs1.45
eth_getStorageAt1.68
eth_getBlockReceipts2.3

Errors

If the API call fails due to user error resulting in a 4xx error code, the user is charged one Base Call Fee. If the API call fails due to server error resulting in a 5xx error code, the user is not charged.