{"openapi":"3.1.0","info":{"title":"Northline ChainKit","version":"1.2.0","description":"x402 pay-per-call onchain API (Base + Arc).","x-guidance":"All endpoints are GET with query parameters and return JSON. Pay per call with x402 (USDC on Base); an unpaid call returns HTTP 402 with the price. Use /v1/address/profile before sending funds or approving a contract (contract/proxy/Safe/verified/risk flags), /v1/payment/verify to confirm a USDC payment landed before delivering goods, /v1/tx/explain to summarize what a transaction did, /v1/network/status for gas and block height, /v1/usdc/balances for USDC on Base and Arc at once. Bad input returns 400 before payment; failed upstream calls are not charged.","contact":{"name":"Northline","email":"northline@mail.grokbot.com","url":"https://northline-chainkit.northline-c86.workers.dev/llms.txt"}},"servers":[{"url":"https://northline-chainkit.northline-c86.workers.dev"}],"paths":{"/v1/address/profile":{"get":{"summary":"Preflight any address on Base or Arc before paying or approving it: EOA vs contract vs EIP-7702-delegated wallet, EIP-1967 proxy implementation/admin, owner(), Safe multisig threshold, ERC-20 metadata, USDC + native balance, Sourcify verification, and risk flags.","operationId":"address_profile","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","arc"],"default":"base"}},{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad input (no charge: x402 settles only on success)"},"402":{"description":"Payment required (x402 v2 PAYMENT-REQUIRED header; same PaymentRequired JSON in the body)"},"502":{"description":"Upstream error (no charge)"}}}},"/v1/payment/verify":{"get":{"summary":"Verify that a transaction paid at least N USDC to an address on Base or Arc (handles Arc native-USDC logs). Returns verified true/false, confirmations, matching transfers and reasons. Use it to confirm a customer paid before delivering.","operationId":"payment_verify","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","arc"],"default":"base"}},{"name":"tx","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"minAmount","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"minConfirmations","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad input (no charge: x402 settles only on success)"},"402":{"description":"Payment required (x402 v2 PAYMENT-REQUIRED header; same PaymentRequired JSON in the body)"},"502":{"description":"Upstream error (no charge)"}}}},"/v1/tx/explain":{"get":{"summary":"Explain a Base or Arc transaction in plain JSON: status, confirmations, fee, method selector, created contract, and every ERC-20 transfer decoded with symbol and decimals.","operationId":"tx_explain","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","arc"],"default":"base"}},{"name":"tx","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad input (no charge: x402 settles only on success)"},"402":{"description":"Payment required (x402 v2 PAYMENT-REQUIRED header; same PaymentRequired JSON in the body)"},"502":{"description":"Upstream error (no charge)"}}}},"/v1/network/status":{"get":{"summary":"Live block height, gas price and fee estimates (transfer, ERC-20 transfer, contract call) for Base or Arc. On Arc fees are quoted directly in USDC.","operationId":"network_status","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","arc"],"default":"base"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad input (no charge: x402 settles only on success)"},"402":{"description":"Payment required (x402 v2 PAYMENT-REQUIRED header; same PaymentRequired JSON in the body)"},"502":{"description":"Upstream error (no charge)"}}}},"/v1/usdc/balances":{"get":{"summary":"USDC and native balance of one address on both Base and Arc in a single call.","operationId":"usdc_balances","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"network":"eip155:8453","asset":"USDC"},"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad input (no charge: x402 settles only on success)"},"402":{"description":"Payment required (x402 v2 PAYMENT-REQUIRED header; same PaymentRequired JSON in the body)"},"502":{"description":"Upstream error (no charge)"}}}}}}