# RFC: Standardising how smart contracts expose state

**URL:** <https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544>\
**Category:** Developers\
**Created:** [November 12, 2021, 1:17pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544 "2021-11-12T13:17:10Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![jzxchiang](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/jzxchiang/32/2592_2.png) [@jzxchiang](https://forum.dfinity.org/u/jzxchiang)\
**Post date:** [January 12, 2022, 9:32pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/21 "2022-01-12T21:32:12Z")

</div>

I don’t think that’s him.

---

<div class="post-metadata">

**Author:** ![PaulLiu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/paulliu/32/4701_2.png) [@PaulLiu](https://forum.dfinity.org/u/PaulLiu)\
**Post date:** [January 18, 2022, 8:20pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/22 "2022-01-18T20:20:05Z")

</div>

Just want to chime in that once [Enable canisters to make HTTP(S) requests](https://forum.dfinity.org/t/enable-canisters-to-make-http-s-requests/9670) is implemented, one can use it to call `read_state` end point on IC itself. Not exactly a satisfying solution, but will be possible.

---

<div class="post-metadata">

**Author:** ![akhilesh.singhania](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/akhilesh.singhania/32/487_2.png) [@akhilesh.singhania](https://forum.dfinity.org/u/akhilesh.singhania)\
**Post date:** [January 19, 2022, 9:29am UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/23 "2022-01-19T09:29:56Z")

</div>

> [@Canister integrity verification on chain is missing](https://forum.dfinity.org/t/canister-integrity-verification-on-chain-is-missing/10353/15):
>
> @bogdanwarinschi , @bjoern , and I have been discussing the RFC and we are going to start working on the spec changes.

---

<div class="post-metadata">

**Author:** ![PaulLiu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/paulliu/32/4701_2.png) [@PaulLiu](https://forum.dfinity.org/u/PaulLiu)\
**Post date:** [January 19, 2022, 4:39pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/24 "2022-01-19T16:39:32Z")

</div>

> [@akhilesh.singhania](#):
>
> In the future, if we add support for inter-canister queries, then canisters will also be able to call it as a non-replicated call. In this case, the certificate will again be included.

If a piece of private state is only meant to be read by controllers, then the security of a call must ensure that the caller is genuine, not just that the result is certified. But of course this is more of a question about how non-replicated query call is going to work.

---

<div class="post-metadata">

**Author:** ![roman-kashitsyn](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/roman-kashitsyn/32/3802_2.png) [@roman-kashitsyn](https://forum.dfinity.org/u/roman-kashitsyn)\
**Post date:** [March 8, 2022, 10:00pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/25 "2022-03-08T22:00:31Z")

</div>

> [@nomeata](#):
>
> Define a mapping from these abstract Candid values to our hash tree.

That’s a fantastic idea. Certifying data is a huge pain and doesn’t scale well. The only way out of this misery is automation.

> [@nomeata](#):
>
> ditch this convenient but dangerous `async` stuff 🙂

Amen. I wrote two async runtimes for Rust canisters, and I still hate all things `async` passionately. State machines is the only true way to specify and build distributed software.

Also, I wish I learned about TLA+ 3 years ago 🙂

---

<div class="post-metadata">

**Author:** ![jzxchiang](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/jzxchiang/32/2592_2.png) [@jzxchiang](https://forum.dfinity.org/u/jzxchiang)\
**Post date:** [March 17, 2022, 10:32pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/26 "2022-03-17T22:32:44Z")

</div>

What is the current status of this? Has it been deployed or is it still in the design or implementation phase? Thanks.

---

<div class="post-metadata">

**Author:** ![jzxchiang](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/jzxchiang/32/2592_2.png) [@jzxchiang](https://forum.dfinity.org/u/jzxchiang)\
**Post date:** [May 5, 2022, 8:49pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/27 "2022-05-05T20:49:49Z")

</div>

I wanted to follow up if the `read_state` query function (callable by both canisters and external users) will launch soon. Thanks!

---

<div class="post-metadata">

**Author:** ![dsarlis](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/dsarlis/32/689_2.png) [@dsarlis](https://forum.dfinity.org/u/dsarlis)\
**Post date:** [May 6, 2022, 8:31am UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/28 "2022-05-06T08:31:35Z")

</div>

Hi @jzxchiang, this has not really been moved further than discussions about what an MVP solution would look like, so I wouldn’t expect it to launch soon.

---

<div class="post-metadata">

**Author:** ![Hazel](https://avatars.discourse-cdn.com/v4/letter/h/e56c9b/32.png) [@Hazel](https://forum.dfinity.org/u/Hazel)\
**Post date:** [March 23, 2023, 4:57pm UTC](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544/29 "2023-03-23T16:57:39Z")

</div>

Hey all,

Very very very late to the game here and only just seeing how useful this proposal is. ic-spec is an intimidating document!

Did we ever end up somewhere here? I know we have outbound HTTP requests so… technically… this is possible. But, I think being able to verify the `/canister/<canister_id>/*` would solve a ton of composability issues we struggled with building quark.

[Previous page](https://forum.dfinity.org/t/rfc-standardising-how-smart-contracts-expose-state/8544.md?page=1)
