{"openapi":"3.1.0","info":{"title":"Tempo Vitals","description":"MPP-gated observability oracle for the Tempo blockchain (chain 4217). Pay-per-call gas, block, transaction, address and TIP-20 token data, sourced live from Tempo RPC.","version":"0.1.0","x-guidance":"Tempo Vitals is a pay-per-call observability API for the Tempo blockchain (chain 4217). Free routes: GET / (live gas price + block number + service metadata), GET /health (RPC health). All other routes require MPP payment in USDC.e on Tempo. Pricing: chain/block/address queries $0.001, tx/token/gas-history $0.002, network stats $0.005. Unauthenticated requests to paid routes return HTTP 402 with a WWW-Authenticate: Payment challenge you must satisfy with a tempo charge intent. Use the challenge's recipient, currency and chainId exactly."},"paths":{"/":{"get":{"tags":["meta"],"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-auth-mode":"none","security":[],"x-payment-info":{"authMode":"none","price":{"amount":"0","currency":"USD","mode":"fixed"},"protocols":[]}}},"/health":{"get":{"tags":["meta"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-auth-mode":"none","security":[],"x-payment-info":{"authMode":"none","price":{"amount":"0","currency":"USD","mode":"fixed"},"protocols":[]}}},"/chain/info":{"get":{"tags":["chain"],"summary":"Tempo chain info","operationId":"chain_info_chain_info_get","parameters":[{"name":"verbose","in":"query","required":false,"schema":{"type":"boolean","description":"Include extra diagnostic fields","default":false,"title":"Verbose"},"description":"Include extra diagnostic fields"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.001"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo chain info","authMode":"paid"}}},"/gas/current":{"get":{"tags":["gas"],"summary":"Current Tempo gas price","operationId":"gas_current_gas_current_get","parameters":[{"name":"unit","in":"query","required":false,"schema":{"type":"string","pattern":"^(wei|gwei)$","description":"Return unit: wei or gwei","default":"gwei","title":"Unit"},"description":"Return unit: wei or gwei"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.001"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Current Tempo gas price","authMode":"paid"}}},"/gas/history":{"get":{"tags":["gas"],"summary":"Tempo gas history (feeHistory)","operationId":"gas_history_gas_history_get","parameters":[{"name":"blocks","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Blocks"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.002"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo gas history (feeHistory)","authMode":"paid"}}},"/block/latest":{"get":{"tags":["block"],"summary":"Latest Tempo block","operationId":"block_latest_block_latest_get","parameters":[{"name":"include_txs","in":"query","required":false,"schema":{"type":"boolean","description":"Include full transaction objects","default":false,"title":"Include Txs"},"description":"Include full transaction objects"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.001"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Latest Tempo block","authMode":"paid"}}},"/block/{number}":{"get":{"tags":["block"],"summary":"Tempo block by number","operationId":"block_by_number_block__number__get","parameters":[{"name":"number","in":"path","required":true,"schema":{"type":"integer","title":"Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.001"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo block by number","authMode":"paid"}}},"/tx/{tx_hash}":{"get":{"tags":["tx"],"summary":"Tempo transaction by hash","operationId":"tx_by_hash_tx__tx_hash__get","parameters":[{"name":"tx_hash","in":"path","required":true,"schema":{"type":"string","title":"Tx Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.002"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo transaction by hash","authMode":"paid"}}},"/address/{addr}/balance":{"get":{"tags":["address"],"summary":"Tempo address balance + nonce + code","operationId":"address_balance_address__addr__balance_get","parameters":[{"name":"addr","in":"path","required":true,"schema":{"type":"string","title":"Addr"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.001"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo address balance + nonce + code","authMode":"paid"}}},"/token/{addr}/info":{"get":{"tags":["token"],"summary":"TIP-20 token metadata","operationId":"token_info_token__addr__info_get","parameters":[{"name":"addr","in":"path","required":true,"schema":{"type":"string","title":"Addr"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.002"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"TIP-20 token metadata","authMode":"paid"}}},"/stats":{"get":{"tags":["stats"],"summary":"Tempo network stats (recent 20 blocks)","operationId":"stats_stats_get","parameters":[{"name":"window","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of recent blocks to aggregate","default":20,"title":"Window"},"description":"Number of recent blocks to aggregate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required - returns MPP Challenge in WWW-Authenticate header","headers":{"WWW-Authenticate":{"schema":{"type":"string"},"description":"MPP Payment challenge (method=tempo, intent=charge)"}}}},"x-auth-mode":"mpp","security":[{"mppPayment":[]}],"x-payment-info":{"price":{"currency":"USD","mode":"fixed","amount":"0.005"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"description":"Tempo network stats (recent 20 blocks)","authMode":"paid"}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"mppPayment":{"type":"http","scheme":"Payment","description":"MPP Payment challenge — send an Authorization: Payment header carrying a valid tempo charge credential (see WWW-Authenticate on the 402 response)."}}},"x-service-info":{"categories":["data","web3","infra"],"docs":{"homepage":"https://tempogastracker.xyz","apiReference":"https://tempogastracker.xyz/openapi.json"}}}