Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 31bf4c0

Browse files
authoredNov 14, 2023
Initiate Smart Token Concept Paper
Initiated the development of a comprehensive concept paper on Smart Tokens. This paper aims to delve deeper into the analytical and technical aspects of Smart Tokens, aligning with the rigor and style of our technical whitepapers. The focus is to provide an in-depth exploration of Smart Tokens, tracing their evolution from traditional web models to their potential transformative role in the next-generation web. Inspired by the approach of papers like "Decentralized Society: Finding Web3's Soul", this document is designed to be thought-provoking and discussion-generating, targeting an audience interested in the foundational principles and future implications of emerging technologies.
1 parent 84b525f commit 31bf4c0

File tree

4 files changed

+1154
-1
lines changed

4 files changed

+1154
-1
lines changed
 

‎README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ This repository hosts the documentation source for both TokenScript and SmartLay
3434
````
3535
$ dita --project config/tokenscript-docsite.yaml -o out/tokenscript-docs
3636
````
37+
38+
- For compiling the Smart Token paper, use:
39+
````
40+
$ pandoc --toc=true --resource-path=src/papers --csl src/papers/chicago-author-date.csl --citeproc --bibliography src/papers/smart-token-paper.bib -o out/smart-token-paper.pdf src/papers/smart-token-paper.md
41+
````
42+
3743
- For compiling the TokenScript Design paper, use:
3844
````
3945
$ dita --project config/tokenscript-papers.xml

‎src/papers/chicago-author-date.csl

Lines changed: 679 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,679 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="display-and-sort" page-range-format="chicago">
3+
<info>
4+
<title>Chicago Manual of Style 17th edition (author-date)</title>
5+
<id>http://www.zotero.org/styles/chicago-author-date</id>
6+
<link href="http://www.zotero.org/styles/chicago-author-date" rel="self"/>
7+
<link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/>
8+
<author>
9+
<name>Julian Onions</name>
10+
<email>julian.onions@gmail.com</email>
11+
</author>
12+
<contributor>
13+
<name>Sebastian Karcher</name>
14+
</contributor>
15+
<contributor>
16+
<name>Richard Karnesky</name>
17+
<email>karnesky+zotero@gmail.com</email>
18+
<uri>http://arc.nucapt.northwestern.edu/Richard_Karnesky</uri>
19+
</contributor>
20+
<contributor>
21+
<name>Andrew Dunning</name>
22+
<email>andrew.dunning@utoronto.ca</email>
23+
<uri>https://orcid.org/0000-0003-0464-5036</uri>
24+
</contributor>
25+
<contributor>
26+
<name>Matthew Roth</name>
27+
<email>matthew.g.roth@yale.edu</email>
28+
<uri> https://orcid.org/0000-0001-7902-6331</uri>
29+
</contributor>
30+
<contributor>
31+
<name>Brenton M. Wiernik</name>
32+
</contributor>
33+
<category citation-format="author-date"/>
34+
<category field="generic-base"/>
35+
<summary>The author-date variant of the Chicago style</summary>
36+
<updated>2023-06-25T17:05:17-04:00</updated>
37+
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
38+
</info>
39+
<locale xml:lang="en">
40+
<terms>
41+
<term name="editor" form="verb-short">ed.</term>
42+
<term name="container-author" form="verb">by</term>
43+
<term name="translator" form="verb-short">trans.</term>
44+
<term name="editortranslator" form="verb">edited and translated by</term>
45+
<term name="translator" form="short">trans.</term>
46+
</terms>
47+
</locale>
48+
<locale xml:lang="pt-PT">
49+
<terms>
50+
<term name="accessed">acedido a</term>
51+
</terms>
52+
</locale>
53+
<locale xml:lang="pt">
54+
<terms>
55+
<term name="editor" form="verb">editado por</term>
56+
<term name="editor" form="verb-short">ed.</term>
57+
<term name="container-author" form="verb">por</term>
58+
<term name="translator" form="verb-short">traduzido por</term>
59+
<term name="translator" form="short">trad.</term>
60+
<term name="editortranslator" form="verb">editado e traduzido por</term>
61+
<term name="and">e</term>
62+
<term name="no date" form="long">s.d</term>
63+
<term name="no date" form="short">s.d.</term>
64+
<term name="in">em</term>
65+
<term name="at">em</term>
66+
<term name="by">por</term>
67+
</terms>
68+
</locale>
69+
<macro name="secondary-contributors">
70+
<choose>
71+
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="none">
72+
<group delimiter=". ">
73+
<names variable="editor translator" delimiter=". ">
74+
<label form="verb" text-case="capitalize-first" suffix=" "/>
75+
<name and="text" delimiter=", "/>
76+
</names>
77+
<names variable="director" delimiter=". ">
78+
<label form="verb" text-case="capitalize-first" suffix=" "/>
79+
<name and="text" delimiter=", "/>
80+
</names>
81+
</group>
82+
</if>
83+
</choose>
84+
</macro>
85+
<macro name="container-contributors">
86+
<choose>
87+
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
88+
<group prefix=", " delimiter=", ">
89+
<names variable="container-author" delimiter=", ">
90+
<label form="verb" suffix=" "/>
91+
<name and="text" delimiter=", "/>
92+
</names>
93+
<names variable="editor translator" delimiter=", ">
94+
<label form="verb" suffix=" "/>
95+
<name and="text" delimiter=", "/>
96+
</names>
97+
</group>
98+
</if>
99+
</choose>
100+
</macro>
101+
<macro name="editor">
102+
<names variable="editor">
103+
<name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
104+
<label form="short" prefix=", "/>
105+
</names>
106+
</macro>
107+
<macro name="translator">
108+
<names variable="translator">
109+
<name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
110+
<label form="short" prefix=", "/>
111+
</names>
112+
</macro>
113+
<macro name="recipient">
114+
<choose>
115+
<if type="personal_communication">
116+
<choose>
117+
<if variable="genre">
118+
<text variable="genre" text-case="capitalize-first"/>
119+
</if>
120+
<else>
121+
<text term="letter" text-case="capitalize-first"/>
122+
</else>
123+
</choose>
124+
</if>
125+
</choose>
126+
<names variable="recipient" delimiter=", ">
127+
<label form="verb" prefix=" " text-case="lowercase" suffix=" "/>
128+
<name and="text" delimiter=", "/>
129+
</names>
130+
</macro>
131+
<macro name="substitute-title">
132+
<choose>
133+
<if type="article-magazine article-newspaper review review-book" match="any">
134+
<text macro="container-title"/>
135+
</if>
136+
</choose>
137+
</macro>
138+
<macro name="contributors">
139+
<group delimiter=". ">
140+
<names variable="author">
141+
<name and="text" name-as-sort-order="first" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
142+
<label form="short" prefix=", "/>
143+
<substitute>
144+
<names variable="editor"/>
145+
<names variable="translator"/>
146+
<names variable="director"/>
147+
<text macro="substitute-title"/>
148+
<text macro="title"/>
149+
</substitute>
150+
</names>
151+
<text macro="recipient"/>
152+
</group>
153+
</macro>
154+
<macro name="contributors-short">
155+
<names variable="author">
156+
<name form="short" and="text" delimiter=", " initialize-with=". "/>
157+
<substitute>
158+
<names variable="editor"/>
159+
<names variable="translator"/>
160+
<names variable="director"/>
161+
<text macro="substitute-title"/>
162+
<text macro="title"/>
163+
</substitute>
164+
</names>
165+
</macro>
166+
<macro name="interviewer">
167+
<names variable="interviewer" delimiter=", ">
168+
<label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/>
169+
<name and="text" delimiter=", "/>
170+
</names>
171+
</macro>
172+
<macro name="archive">
173+
<group delimiter=". ">
174+
<text variable="archive_location" text-case="capitalize-first"/>
175+
<text variable="archive"/>
176+
<text variable="archive-place"/>
177+
</group>
178+
</macro>
179+
<macro name="access">
180+
<group delimiter=". ">
181+
<choose>
182+
<if type="graphic report" match="any">
183+
<text macro="archive"/>
184+
</if>
185+
<else-if type="article-journal bill book chapter legal_case legislation motion_picture paper-conference" match="none">
186+
<text macro="archive"/>
187+
</else-if>
188+
</choose>
189+
<choose>
190+
<if type="webpage post-weblog" match="any">
191+
<date variable="issued" form="text"/>
192+
</if>
193+
</choose>
194+
<choose>
195+
<if variable="issued" match="none">
196+
<group delimiter=" ">
197+
<text term="accessed" text-case="capitalize-first"/>
198+
<date variable="accessed" form="text"/>
199+
</group>
200+
</if>
201+
</choose>
202+
<choose>
203+
<if type="legal_case" match="none">
204+
<choose>
205+
<if variable="DOI">
206+
<text variable="DOI" prefix="https://doi.org/"/>
207+
</if>
208+
<else>
209+
<text variable="URL"/>
210+
</else>
211+
</choose>
212+
</if>
213+
</choose>
214+
</group>
215+
</macro>
216+
<macro name="title">
217+
<choose>
218+
<if variable="title" match="none">
219+
<choose>
220+
<if type="personal_communication speech thesis" match="none">
221+
<text variable="genre" text-case="capitalize-first"/>
222+
</if>
223+
</choose>
224+
</if>
225+
<else-if type="bill book graphic legislation motion_picture song" match="any">
226+
<text variable="title" text-case="title" font-style="italic"/>
227+
<group prefix=" (" suffix=")" delimiter=" ">
228+
<text term="version"/>
229+
<text variable="version"/>
230+
</group>
231+
</else-if>
232+
<else-if variable="reviewed-author">
233+
<choose>
234+
<if variable="reviewed-title">
235+
<group delimiter=". ">
236+
<text variable="title" text-case="title" quotes="true"/>
237+
<group delimiter=", ">
238+
<text variable="reviewed-title" text-case="title" font-style="italic" prefix="Review of "/>
239+
<names variable="reviewed-author">
240+
<label form="verb-short" text-case="lowercase" suffix=" "/>
241+
<name and="text" delimiter=", "/>
242+
</names>
243+
</group>
244+
</group>
245+
</if>
246+
<else>
247+
<group delimiter=", ">
248+
<text variable="title" text-case="title" font-style="italic" prefix="Review of "/>
249+
<names variable="reviewed-author">
250+
<label form="verb-short" text-case="lowercase" suffix=" "/>
251+
<name and="text" delimiter=", "/>
252+
</names>
253+
</group>
254+
</else>
255+
</choose>
256+
</else-if>
257+
<else-if type="legal_case interview patent" match="any">
258+
<text variable="title"/>
259+
</else-if>
260+
<else>
261+
<text variable="title" text-case="title" quotes="true"/>
262+
</else>
263+
</choose>
264+
</macro>
265+
<macro name="edition">
266+
<choose>
267+
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
268+
<choose>
269+
<if is-numeric="edition">
270+
<group delimiter=" " prefix=". ">
271+
<number variable="edition" form="ordinal"/>
272+
<text term="edition" form="short" strip-periods="true"/>
273+
</group>
274+
</if>
275+
<else>
276+
<text variable="edition" text-case="capitalize-first" prefix=". "/>
277+
</else>
278+
</choose>
279+
</if>
280+
<else-if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
281+
<choose>
282+
<if is-numeric="edition">
283+
<group delimiter=" " prefix=", ">
284+
<number variable="edition" form="ordinal"/>
285+
<text term="edition" form="short"/>
286+
</group>
287+
</if>
288+
<else>
289+
<text variable="edition" prefix=", "/>
290+
</else>
291+
</choose>
292+
</else-if>
293+
</choose>
294+
</macro>
295+
<macro name="locators">
296+
<choose>
297+
<if type="article-journal">
298+
<choose>
299+
<if variable="volume">
300+
<text variable="volume" prefix=" "/>
301+
<group prefix=" (" suffix=")">
302+
<choose>
303+
<if variable="issue">
304+
<text variable="issue"/>
305+
</if>
306+
<else>
307+
<date variable="issued">
308+
<date-part name="month"/>
309+
</date>
310+
</else>
311+
</choose>
312+
</group>
313+
</if>
314+
<else-if variable="issue">
315+
<group delimiter=" " prefix=", ">
316+
<text term="issue" form="short"/>
317+
<text variable="issue"/>
318+
<date variable="issued" prefix="(" suffix=")">
319+
<date-part name="month"/>
320+
</date>
321+
</group>
322+
</else-if>
323+
<else>
324+
<date variable="issued" prefix=", ">
325+
<date-part name="month"/>
326+
</date>
327+
</else>
328+
</choose>
329+
</if>
330+
<else-if type="legal_case">
331+
<text variable="volume" prefix=", "/>
332+
<text variable="container-title" prefix=" "/>
333+
<text variable="page" prefix=" "/>
334+
</else-if>
335+
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
336+
<group prefix=". " delimiter=". ">
337+
<group>
338+
<text term="volume" form="short" text-case="capitalize-first" suffix=" "/>
339+
<number variable="volume" form="numeric"/>
340+
</group>
341+
<group>
342+
<number variable="number-of-volumes" form="numeric"/>
343+
<text term="volume" form="short" prefix=" " plural="true"/>
344+
</group>
345+
</group>
346+
</else-if>
347+
<else-if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
348+
<choose>
349+
<if variable="page" match="none">
350+
<group prefix=". ">
351+
<text term="volume" form="short" text-case="capitalize-first" suffix=" "/>
352+
<number variable="volume" form="numeric"/>
353+
</group>
354+
</if>
355+
</choose>
356+
</else-if>
357+
</choose>
358+
</macro>
359+
<macro name="locators-chapter">
360+
<choose>
361+
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
362+
<choose>
363+
<if variable="page">
364+
<group prefix=", ">
365+
<text variable="volume" suffix=":"/>
366+
<text variable="page"/>
367+
</group>
368+
</if>
369+
</choose>
370+
</if>
371+
</choose>
372+
</macro>
373+
<macro name="locators-article">
374+
<choose>
375+
<if type="article-newspaper">
376+
<group prefix=", " delimiter=", ">
377+
<group delimiter=" ">
378+
<text variable="edition"/>
379+
<text term="edition"/>
380+
</group>
381+
<group>
382+
<text term="section" form="short" suffix=" "/>
383+
<text variable="section"/>
384+
</group>
385+
</group>
386+
</if>
387+
<else-if type="article-journal">
388+
<choose>
389+
<if variable="volume issue" match="any">
390+
<text variable="page" prefix=": "/>
391+
</if>
392+
<else>
393+
<text variable="page" prefix=", "/>
394+
</else>
395+
</choose>
396+
</else-if>
397+
</choose>
398+
</macro>
399+
<macro name="point-locators">
400+
<choose>
401+
<if variable="locator">
402+
<choose>
403+
<if locator="page" match="none">
404+
<choose>
405+
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
406+
<choose>
407+
<if variable="volume">
408+
<group>
409+
<text term="volume" form="short" suffix=" "/>
410+
<number variable="volume" form="numeric"/>
411+
<label variable="locator" form="short" prefix=", " suffix=" "/>
412+
</group>
413+
</if>
414+
<else>
415+
<label variable="locator" form="short" suffix=" "/>
416+
</else>
417+
</choose>
418+
</if>
419+
<else>
420+
<label variable="locator" form="short" suffix=" "/>
421+
</else>
422+
</choose>
423+
</if>
424+
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
425+
<number variable="volume" form="numeric" suffix=":"/>
426+
</else-if>
427+
</choose>
428+
<text variable="locator"/>
429+
</if>
430+
</choose>
431+
</macro>
432+
<macro name="container-prefix">
433+
<text term="in" text-case="capitalize-first"/>
434+
</macro>
435+
<macro name="container-title">
436+
<choose>
437+
<if type="chapter entry-dictionary entry-encyclopedia paper-conference" match="any">
438+
<text macro="container-prefix" suffix=" "/>
439+
</if>
440+
</choose>
441+
<choose>
442+
<if type="webpage">
443+
<text variable="container-title" text-case="title"/>
444+
</if>
445+
<else-if type="legal_case" match="none">
446+
<group delimiter=" ">
447+
<text variable="container-title" text-case="title" font-style="italic"/>
448+
<choose>
449+
<if type="post-weblog">
450+
<text value="(blog)"/>
451+
</if>
452+
</choose>
453+
</group>
454+
</else-if>
455+
</choose>
456+
</macro>
457+
<macro name="publisher">
458+
<group delimiter=": ">
459+
<text variable="publisher-place"/>
460+
<text variable="publisher"/>
461+
</group>
462+
</macro>
463+
<macro name="date">
464+
<choose>
465+
<if variable="issued">
466+
<group delimiter=" ">
467+
<date variable="original-date" form="text" date-parts="year" prefix="(" suffix=")"/>
468+
<date variable="issued">
469+
<date-part name="year"/>
470+
</date>
471+
</group>
472+
</if>
473+
<else-if variable="status">
474+
<text variable="status" text-case="capitalize-first"/>
475+
</else-if>
476+
<else>
477+
<text term="no date" form="short"/>
478+
</else>
479+
</choose>
480+
</macro>
481+
<macro name="date-in-text">
482+
<choose>
483+
<if variable="issued">
484+
<group delimiter=" ">
485+
<date variable="original-date" form="text" date-parts="year" prefix="[" suffix="]"/>
486+
<date variable="issued">
487+
<date-part name="year"/>
488+
</date>
489+
</group>
490+
</if>
491+
<else-if variable="status">
492+
<text variable="status"/>
493+
</else-if>
494+
<else>
495+
<text term="no date" form="short"/>
496+
</else>
497+
</choose>
498+
</macro>
499+
<macro name="day-month">
500+
<date variable="issued">
501+
<date-part name="month"/>
502+
<date-part name="day" prefix=" "/>
503+
</date>
504+
</macro>
505+
<macro name="collection-title">
506+
<choose>
507+
<if match="none" type="article-journal">
508+
<choose>
509+
<if match="none" is-numeric="collection-number">
510+
<group delimiter=", ">
511+
<text variable="collection-title" text-case="title"/>
512+
<text variable="collection-number"/>
513+
</group>
514+
</if>
515+
<else>
516+
<group delimiter=" ">
517+
<text variable="collection-title" text-case="title"/>
518+
<text variable="collection-number"/>
519+
</group>
520+
</else>
521+
</choose>
522+
</if>
523+
</choose>
524+
</macro>
525+
<macro name="collection-title-journal">
526+
<choose>
527+
<if type="article-journal">
528+
<group delimiter=" ">
529+
<text variable="collection-title"/>
530+
<text variable="collection-number"/>
531+
</group>
532+
</if>
533+
</choose>
534+
</macro>
535+
<macro name="event">
536+
<group delimiter=" ">
537+
<choose>
538+
<if variable="genre">
539+
<text term="presented at"/>
540+
</if>
541+
<else>
542+
<text term="presented at" text-case="capitalize-first"/>
543+
</else>
544+
</choose>
545+
<text variable="event"/>
546+
</group>
547+
</macro>
548+
<macro name="description">
549+
<choose>
550+
<if variable="interviewer" type="interview" match="any">
551+
<group delimiter=". ">
552+
<text macro="interviewer"/>
553+
<text variable="medium" text-case="capitalize-first"/>
554+
</group>
555+
</if>
556+
<else-if type="patent">
557+
<group delimiter=" " prefix=". ">
558+
<text variable="authority"/>
559+
<text variable="number"/>
560+
</group>
561+
</else-if>
562+
<else>
563+
<text variable="medium" text-case="capitalize-first" prefix=". "/>
564+
</else>
565+
</choose>
566+
<choose>
567+
<if variable="title" match="none"/>
568+
<else-if type="thesis personal_communication speech" match="any"/>
569+
<else>
570+
<group delimiter=" " prefix=". ">
571+
<text variable="genre" text-case="capitalize-first"/>
572+
<choose>
573+
<if type="report">
574+
<text variable="number"/>
575+
</if>
576+
</choose>
577+
</group>
578+
</else>
579+
</choose>
580+
</macro>
581+
<macro name="issue">
582+
<choose>
583+
<if type="legal_case">
584+
<text variable="authority" prefix=". "/>
585+
</if>
586+
<else-if type="speech">
587+
<group prefix=". " delimiter=", ">
588+
<group delimiter=" ">
589+
<text variable="genre" text-case="capitalize-first"/>
590+
<text macro="event"/>
591+
</group>
592+
<text variable="event-place"/>
593+
<text macro="day-month"/>
594+
</group>
595+
</else-if>
596+
<else-if type="article-newspaper article-magazine personal_communication" match="any">
597+
<date variable="issued" form="text" prefix=", "/>
598+
</else-if>
599+
<else-if type="patent">
600+
<group delimiter=", " prefix=", ">
601+
<group delimiter=" ">
602+
<!--Needs Localization-->
603+
<text value="filed"/>
604+
<date variable="submitted" form="text"/>
605+
</group>
606+
<group delimiter=" ">
607+
<choose>
608+
<if variable="issued submitted" match="all">
609+
<text term="and"/>
610+
</if>
611+
</choose>
612+
<!--Needs Localization-->
613+
<text value="issued"/>
614+
<date variable="issued" form="text"/>
615+
</group>
616+
</group>
617+
</else-if>
618+
<else-if type="article-journal" match="any"/>
619+
<else>
620+
<group prefix=". " delimiter=", ">
621+
<choose>
622+
<if type="thesis">
623+
<text variable="genre" text-case="capitalize-first"/>
624+
</if>
625+
</choose>
626+
<text macro="publisher"/>
627+
</group>
628+
</else>
629+
</choose>
630+
</macro>
631+
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" givenname-disambiguation-rule="primary-name" collapse="year" after-collapse-delimiter="; ">
632+
<layout prefix="(" suffix=")" delimiter="; ">
633+
<group delimiter=", ">
634+
<choose>
635+
<if variable="issued accessed" match="any">
636+
<group delimiter=" ">
637+
<text macro="contributors-short"/>
638+
<text macro="date-in-text"/>
639+
</group>
640+
</if>
641+
<!---comma before forthcoming and n.d.-->
642+
<else>
643+
<group delimiter=", ">
644+
<text macro="contributors-short"/>
645+
<text macro="date-in-text"/>
646+
</group>
647+
</else>
648+
</choose>
649+
<text macro="point-locators"/>
650+
</group>
651+
</layout>
652+
</citation>
653+
<bibliography hanging-indent="true" et-al-min="11" et-al-use-first="7" subsequent-author-substitute="&#8212;&#8212;&#8212;" entry-spacing="0">
654+
<sort>
655+
<key macro="contributors"/>
656+
<key variable="issued"/>
657+
<key variable="title"/>
658+
</sort>
659+
<layout suffix=".">
660+
<group delimiter=". ">
661+
<text macro="contributors"/>
662+
<text macro="date"/>
663+
<text macro="title"/>
664+
</group>
665+
<text macro="description"/>
666+
<text macro="secondary-contributors" prefix=". "/>
667+
<text macro="container-title" prefix=". "/>
668+
<text macro="container-contributors"/>
669+
<text macro="edition"/>
670+
<text macro="locators-chapter"/>
671+
<text macro="collection-title-journal" prefix=", " suffix=", "/>
672+
<text macro="locators"/>
673+
<text macro="collection-title" prefix=". "/>
674+
<text macro="issue"/>
675+
<text macro="locators-article"/>
676+
<text macro="access" prefix=". "/>
677+
</layout>
678+
</bibliography>
679+
</style>

‎src/papers/smart-token-paper.md

Lines changed: 448 additions & 0 deletions
Large diffs are not rendered by default.

‎src/technology/TokenNegotiation.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
# Introduction to Token Negotiation
22

3-
Token Negotiation is the mechanism in TokenScript to match tokens with websites.
3+
In a token oriented architecture, token negotiation is the initial process to enable a token to be used on a website.
4+
5+
It is different from the current wallet based connection model. In place of connection, there is negotiation.
6+
7+
Consider the prevailing connection model, the website is given a connection to the user's wallet, either directly, or through WalletConnect. Through this connection, the website learns user's address and follow up the trail in blockchain to determin what tokens he has, then update the webste based on his token ownership.
8+
9+
This can be compared to opening the door to the user's home and let the website discover the treasure. There is no negotiation, it's just on / off button to access all user's treausres. Furthremore, the website has to have the knoweldge where to look to find the tokens for this to work, and every token typically are functioning the same way for this to work
10+
11+
Token negotiation works in having your wallet with this capability to negotiate with the website on what tokens to use, by presenting users with a choice. this choice is similar to the choice presented to users on the use of cookies, except the choice was made with the wallet and the result was sent to the website.
12+
13+
It not only selects the token to be used on the website, but also provides token interface data, such as which server is used to find the additional information of the token, whether the user is able to sign an authorisation for the website to seek such information. For example a movie token can inform a webste - say youtube - that with user's authorsation it is able to fetch a movie from a studio and render it for the users.
14+
15+
There are a few methods for negotiation. It's possible for a website to define either the token type, such as an insurance website can define on the application page that the token of topic is that of a car ownership token. or it can define a token capability, such as any tokens that carries the capability for authorsation to send it is . this is useful for a betting website where anything can be a bet (maybe a smart car?) and loser transfer the asset to the winner. there is also action based negotiation, where the token that can be used is selected bsed on the action it can perform. a typical exmaple is if a website look for a token that can pay USDC. Any USDC generating token, such as an AAVE position, or a line of credit, is usable. There is also a negotiation where the website holds an authorisation from the token issuing entity to convince the wallet that the token was designed to be used on it, making it a quick cut.
16+
17+
Once the negotiation is done, the token enters the website. this means a few things
18+
19+
First, the token metadata is known to the website. This includes the communication methods, such as how to decrypt token data and which server to connect to to get additaionl token data.
20+
21+
Then, the token as an object is passed to the website, where the website can reuqest actions. An example is that a car ownership token is passed to a website where the webstie can request the car owner to authorise itself to issue new keys that can beused to drive the car. Such functinolaities are exposed with TokenScript and using these actions causes tokenscript to be executed online (such as in smart layer network) or off line such as in user's wallets.
22+
23+
424

525
If you think of a marketplace service such as Gumtree or OLX on the “standard” Web, the user enters the website and finds himself in the landing page. He clicks “login” and inputs his credentials and password. The website checks this against a database and returns a profile that includes his personal data, his payment details and his sales listings. In this model, websites are directories for content as well as “banks” and gatekeepers for all user data.
626

0 commit comments

Comments
 (0)
Please sign in to comment.