I need to check DNS records from a smart contract: a user submits a domain, and I need to verify the DNS record of that domain. It's a trivial API call, and I was planning to use Chainlink for accessing it on-chain. The Any API feature seems the right tool.

However, after carefully reading the doc, it seems to me an overly centralized setup: I'm expected to pick an oracle address from the Chainlink market, and to hardcode it in the contract ("The request should include the oracle address, the job id, the fee, adapter parameters, and the callback function signature"). This doesn't sit right with me. What if that particular oracle goes offline? Or if it starts behaving maliciously?

In the docs, the Off-Chain Reporting model is proposed (the same used for Data Feeds: it aggregates different oracles responses), but I don't see any exposed documentation explaining how to implement it, that isn't price feeds.

Is this something that can be done? If yes, how?

1 Answer 1


OCR isn't officially supported yet for general purpose API calls, hence why there's no guides in the docs yet.

To achieve the desired result (less centralized API calls), the alternative to OCR feed is to have multiple nodes do the API calls via normal Any-API functionality, and then do on-chain aggregation or verification after all nodes return a result

Also, did you see the Job type offchain reporting?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.