# Announcing "Token Standard" as topic of the first meeting of the Ledger & Tokenization Working Group

**URL:** <https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925>\
**Category:** Developers\
**Created:** [April 5, 2022, 11:15am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925 "2022-04-05T11:15:13Z")\
**Posts on this page:** 20\
**Page:** 16

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [August 6, 2024, 6:56pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/304 "2024-08-06T18:56:32Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-07-23**

- [Slides](https://docs.google.com/presentation/d/1IJnMZfK4jECAtXcwl7OLGfgimbUShIiPnEPjEa05G1A/edit?usp=share_link)
- [Recording](https://drive.google.com/file/d/1m84POocFl0AMk7Qh7EgNx-abcFzdLjrv/view?usp=share_link)

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [August 6, 2024, 8:09pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/305 "2024-08-06T20:09:52Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-08-06**

- [Recording](https://drive.google.com/file/d/1fDPV66L1tFTU4JfvtQ03BUWEHWTDz4tC/view?usp=share_link)

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [August 18, 2024, 6:24pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/306 "2024-08-18T18:24:19Z")

</div>

@skilesare, @sea-snake

As discussed, please find a draft for ICRC-22 on payment requests [here](https://github.com/dfinity/ICRC/pull/101).

Progressed well, but still some decisions to be made and work required.

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [August 23, 2024, 11:45am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/307 "2024-08-23T11:45:06Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-08-20 (Semi-fungible tokens)**

- [Recording](https://drive.google.com/file/d/1T0bHYtEStMmYa9qFLChGTGpPcEzXj-i7/view?usp=share_link)

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [September 4, 2024, 1:57pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/309 "2024-09-04T13:57:41Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-09-03**

- [Recording](https://drive.google.com/file/d/10W3MHzmz2ZiPsKLsOM18ccpKi36qU0WQ/view?usp=share_link)
- [Slides](https://docs.google.com/presentation/d/1MFO46Va9X-qe9YiyCjqWVBWtML_S69iOA74FLR_kJ-o/edit?usp=share_link)

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [September 17, 2024, 6:27am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/310 "2024-09-17T06:27:41Z")

</div>

I have an overlap for the WG meeting today with a meeting I have to attend (also true for others from DFINITY who are involved in the WG). I leave the standing slot available in case folks want to discuss nevertheless. Thanks!

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [October 1, 2024, 2:16pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/311 "2024-10-01T14:16:10Z")

</div>

The topic for the WG meeting this afternoon is [ICRC-103: Enhanced Allowance Query Mechanism with Pagination](https://github.com/dfinity/ICRC/pull/103/).

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [October 1, 2024, 4:23pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/312 "2024-10-01T16:23:31Z")

</div>

The standard looks good according to the (reduced) WG. The only things we saw that may need to be fixed are the following:

- The termination condition when a client knows that no more allowances would follow in a subsequent query of a sequence of queries is not specified. We think it should be the same as in ICRC-7: “When a response comprises fewer elements than take or the icrc7:default\_take\_value, respectively, iterating can be stopped as the end of the token sequence has been reached. Using this approach, all tokens can be enumerated in ascending order, provided the ledger state does not change between the method calls.”
- If we want to make the termination condition the same as in ICRC-7, we may want to think about introducing an icrc103:default\_take\_value much like the one in ICRC-7. Alternatively, we specify that the default is the icrc103:max\_take\_value, which is the implicit assumption now in my view.

Once those things are explicit, this looks good to go.

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [October 3, 2024, 3:08pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/313 "2024-10-03T15:08:57Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-10-01**

- [Recording](https://drive.google.com/file/d/1iDBF3fsHZUeeSKP02QGlBuuaDyzq3Vri/view?usp=share_link)

---

<div class="post-metadata">

**Author:** ![bogwar](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/bogwar/32/2161_2.png) [@bogwar](https://forum.dfinity.org/u/bogwar)\
**Post date:** [October 10, 2024, 8:54am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/314 "2024-10-10T08:54:17Z")

</div>

> The termination condition when a client knows that no more allowances would follow in a subsequent query of a sequence of queries is not specified. We think it should be the same as in ICRC-7: “When a response comprises fewer elements than take or the icrc7:default\_take\_value, respectively, iterating can be stopped as the end of the token sequence has been reached. Using this approach, all tokens can be enumerated in ascending order, provided the ledger state does not change between the method calls.”

This is a consequence of the semantics and it may be worth spelling out though so I’ll add something along these lines in the draft

> If we want to make the termination condition the same as in ICRC-7, we may want to think about introducing an icrc103:default\_take\_value much like the one in ICRC-7. Alternatively, we specify that the default is the icrc103:max\_take\_value, which is the implicit assumption now in my view.

Currently the default value for `take` is indeed `max_take_value`. Is there some usecase where a `default_value` is also needed? I’ve clarified the text to indicate that `max_take_value` is the default value (if `take` is not specified).

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [October 23, 2024, 10:48am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/315 "2024-10-23T10:48:31Z")

</div>

Please find the slides and recordings of the meetings [here](https://drive.google.com/drive/u/0/folders/1TlaDISjZpAKpqJdXzYMw4hhuKj5YxZ3J).

**Meeting of 2024-10-15**

Topic: ICRC-22 payment URIs

- [Recording](https://drive.google.com/file/d/1obKTBerdXJul_3dPMxXijMvO2-t-CuDB/view?usp=share_link)

---

<div class="post-metadata">

**Author:** ![timo](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/timo/32/5543_2.png) [@timo](https://forum.dfinity.org/u/timo)\
**Post date:** [November 12, 2024, 9:54am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/320 "2024-11-12T09:54:22Z")

</div>

A question about ICRC-1 and its extensions.

The ICRC-1 standard has no notion of blocks, block heights, etc. (intentionally). Hence, it has no notion of “time”. If I call `icrc1_balance_of` then I get the “latest” balance but I don’t know if that balance was from before or after a certain transaction.

The ICRC-3 standard has blocks with transfers but not balances.

So there is no way to get balance and “time” together. Is that right? I mean except for retrieving all blocks relevant for the principal with ICRC-3 and replaying the whole history.

Actually, ICRC-1 has some notion of time because `icrc1_transfer` return the tx index which is ordered. If `icrc1_balance_of` returned the balance _and_ the last tx index that was taken into account that would be much better.

---

<div class="post-metadata">

**Author:** ![sea-snake](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/sea-snake/32/7243_2.png) [@sea-snake](https://forum.dfinity.org/u/sea-snake)\
**Post date:** [November 12, 2024, 3:15pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/321 "2024-11-12T15:15:28Z")

</div>

If I remember correctly, `icrc1_balance_of` is a query call so you should get the time back in the query call response certificate.

For example agent-js uses this timestamp as “watermark” to make sure that the data of a returned query call is always newer than a previously fetched query call. This prevents bugs where you are e.g. polling and you receive older data after you previously received newer data from a different subnet node.

Keep in mind this bug does re-appear if you have multiple agent instances, since the watermark is per agent instance, that’s why I would recommend to re-use an agent instance where possible across actors.

So overall, the IC has a notion of time, response certificates always include the time at which the response was created.

---

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [November 12, 2024, 3:35pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/322 "2024-11-12T15:35:11Z")

</div>

This may be a good thing to consider before we finalize icrc4 as we can easily add an endpoint that queries 1-n balances and returns the height.

---

<div class="post-metadata">

**Author:** ![timo](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/timo/32/5543_2.png) [@timo](https://forum.dfinity.org/u/timo)\
**Post date:** [November 12, 2024, 3:39pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/323 "2024-11-12T15:39:53Z")

</div>

You mean add it to the return value of `icrc4_balance_of_batch`? Or create a separate query function for it?

---

<div class="post-metadata">

**Author:** ![timo](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/timo/32/5543_2.png) [@timo](https://forum.dfinity.org/u/timo)\
**Post date:** [November 12, 2024, 3:50pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/324 "2024-11-12T15:50:17Z")

</div>

> [@sea-snake](#):
>
> If I remember correctly, `icrc1_balance_of` is a query call so you should get the time back in the query call response certificate.

That’s correct but solves a somewhat different problem. I can know the subnet time of the state against which my query was executed. But that doesn’t tell me if a certain transfer was included before this time or not. Unless I know the timestamp of that transfer, but usually I only know the block height of the other transfer because that is what `icrc1_transfer` returns.

But most importantly, the query timestamp you mention is not available to other canisters. I am also interested in the ledger API from the perspective of other canisters making transfers and balance queries.

---

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [November 12, 2024, 3:51pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/325 "2024-11-12T15:51:04Z")

</div>

Maybe a separate one? We can discuss… we have some icrc4 floating around, but not much. Which do you think is preferable?

---

<div class="post-metadata">

**Author:** ![timo](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/timo/32/5543_2.png) [@timo](https://forum.dfinity.org/u/timo)\
**Post date:** [November 12, 2024, 9:41pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/326 "2024-11-12T21:41:39Z")

</div>

> [@skilesare](#):
>
> Maybe a separate one? We can discuss… we have some icrc4 floating around, but not much. Which do you think is preferable?

If the standard isn’t frozen yet then I would add it to the existing endpoint. Make it return a tuple where second field is the block height (or last tx id).

And the same for getting batches of allowances but that’s not part of icrc4, or?

---

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [November 13, 2024, 12:57pm UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/327 "2024-11-13T12:57:13Z")

</div>

I think that is sensible. I’ll draft it when I get a chance and follow up.

> [@timo](#):
>
> And the same for getting batches of allowances but that’s not part of icrc4, or?

No…we need to write the icrc2 batch equivalent. It’s been on the list for a while, but allowing a bunch of accounts seems to be. rarer use case then blasting out multiple payments.(but as you mention in one of your other posts, maybe safer).

---

<div class="post-metadata">

**Author:** ![dieter.sommer](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@dieter.sommer](https://forum.dfinity.org/u/dieter.sommer)\
**Post date:** [November 26, 2024, 11:37am UTC](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925/328 "2024-11-26T11:37:03Z")

</div>

We decided to cancel the meeting of this afternoon as there is no topic linued up that people had time to make progress on.

[Previous page](https://forum.dfinity.org/t/announcing-token-standard-as-topic-of-the-first-meeting-of-the-ledger-tokenization-working-group/11925.md?page=15)
