-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathwidgets.yaml
More file actions
860 lines (857 loc) · 25.5 KB
/
widgets.yaml
File metadata and controls
860 lines (857 loc) · 25.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
- _name_: display_transfer
description: Transfer a token from a user's wallet to another address
parameters:
properties:
address:
description: Transfer recipient address.
type: string
amount:
description: Quantity to transfer.
type: string
token:
description: Symbol of the token being transferred.
type: string
required:
- token
- amount
- address
type: object
return_value_description: ''
- _name_: fetch_nft_buy_asset
description: Buy an NFT asset of a collection on the OpenSea marketplace, given
its network, address, and token ID. Don't use this if we don't have the collection
network and address and token ID of the asset we want to purchase.
parameters:
properties:
address:
description: Contract address of the NFT asset.
type: string
network:
description: Network of the NFT asset.
type: string
tokenID:
description: Token ID of the asset.
type: string
required:
- network
- address
- tokenID
type: object
return_value_description: a transaction dialog for purchase of the NFT
- _name_: fetch_nft_search
description: Search for NFT collections given a query phrase, a description, or
a name
parameters:
properties:
query:
description: String of keywords to describe the kind of NFT collections to
find.
type: string
required:
- query
type: object
return_value_description: a list of text describing NFT collections that were found
- _name_: fetch_nft_collection_assets_by_trait
description: List assets with a particular trait name and value from a specific
NFT collection given its network and address. Don't use this if we don't have
the collection network and address. Don't use this without first fetching the
valid list of trait names or trait values with the fetch_nft_collection_traits
or fetch_nft_collection_trait_values functions so we know the proper casing as
this search is case-sensitive.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: Network of the NFT collection.
type: string
traitName:
description: Name of trait (case-sensitive).
type: string
traitValue:
description: Value of trait (case-sensitive).
type: string
required:
- network
- address
- traitName
- traitValue
type: object
return_value_description: a list of text describing NFT assets that match the trait
value
- _name_: fetch_nft_collection_assets_for_sale_by_trait
description: List assets available for purchase with a particular trait name and
value from a specific NFT collection given its network and address. Don't use
this if we don't have the collection network and address.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: Network of the NFT collection.
type: string
traitName:
description: Name of trait.
type: string
traitValue:
description: Value of trait.
type: string
required:
- network
- address
- traitName
- traitValue
type: object
return_value_description: a list of text describing NFT assets for sale/available
for purchase that match the trait value
- _name_: fetch_nft_collection_info
description: Retrieve data and assets of an NFT collection given its network and
address.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: network of the NFT collection.
type: string
required:
- network
- address
type: object
return_value_description: text with data and some assets of the NFT collection
- _name_: fetch_nft_collection_assets_for_sale
description: Retrieve assets available for purchase of an NFT collection given its
network and address.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: network of the NFT collection.
type: string
required:
- network
- address
type: object
return_value_description: text with assets of the NFT collection that are for sale/available
for purchase
- _name_: fetch_nft_collection_traits
description: Retrieve traits of an NFT collection given its network and address.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: Network of the NFT collection.
type: string
required:
- network
- address
type: object
return_value_description: a list of text describing traits of the NFT collection
- _name_: fetch_nft_collection_trait_values
description: Retrieve trait values of a trait of an NFT collection given its network
and address.
parameters:
properties:
address:
description: Contract address of the NFT collection.
type: string
network:
description: network of the NFT collection.
type: string
traitName:
description: Name of trait to fetch values of.
type: string
required:
- network
- address
- traitName
type: object
return_value_description: a list of text describing values of the trait of the NFT
collection
- _name_: fetch_nft_asset_traits
description: Retrieve data and traits of an NFT asset in a collection given its
network, address, and token ID.
parameters:
properties:
address:
description: Contract address of the NFT asset.
type: string
network:
description: Network of the NFT asset.
type: string
tokenID:
description: Token ID of the asset.
type: string
required:
- network
- address
- tokenID
type: object
return_value_description: text with data and list of trait names and values of the
NFT asset
- _name_: fetch_yields
description: Get the yields for crypto assets. The user may not specify all parameters
so do not guess any parameter.
parameters:
properties:
count:
description: Number of yield sources. Use '*' when parameter not available.
type: string
network:
description: Blockchain to get the yield for. Normalize the network name to
its popular representation in the ecosystem. Use '*' when parameter not
available or the user wants all networks.
type: string
token:
description: Token to get the yield for. Normalize the token name to its popular
symbol representation in the ecoystem. Use '*' when parameter not available
or the user wants all tokens.
type: string
required:
- token
- network
- count
type: object
return_value_description: JSON object with yield information
- _name_: fetch_price
description: Get the price of a token. Note, when the quoteToken isn't explicitly
specified assume it to be USD
parameters:
properties:
basetoken:
description: Token to get the price of.
type: string
quotetoken:
description: Token to use as units for price.
type: string
required:
- basetoken
- quotetoken
type: object
return_value_description: price of a base token in units of a quote token.
- _name_: ens_from_address
description: Get the ENS domain name (*.eth) for a wallet address.
parameters:
properties:
address:
description: Address of the account or wallet.
type: string
required:
- address
type: object
return_value_description: a humanreadable string with ENS domain
- _name_: address_from_ens
description: Get the wallet address for an ENS domain name (*.eth).
parameters:
properties:
domain:
description: Domain name of the account or wallet.
type: string
required:
- domain
type: object
return_value_description: a humanreadable string with wallet address
- _name_: register_ens_domain
description: Register an ENS domain that ends with *.eth
parameters:
properties:
domain:
description: Domain name to register.
type: string
required:
- domain
type: object
return_value_description: ''
- _name_: set_ens_text
description: Set the text record for an ENS domain that ends with *.eth in a key
value pair format.
parameters:
properties:
domain:
description: ENS domain name.
type: string
key:
description: Key of the text record.
type: string
value:
description: Value of the text record.
type: string
required:
- domain
- key
- value
type: object
return_value_description: ''
- _name_: set_ens_primary_name
description: Set a primary ENS name for their connected wallet account.
parameters:
properties:
domain:
description: Domain name to use as primary ENS name.
type: string
required:
- domain
type: object
return_value_description: ''
- _name_: set_ens_avatar_nft
description: Set an nft as their ENS domain's avatar. Do not guess any parameter,
if any parameter is missing, set the default value as 'None'.
parameters:
properties:
domain:
description: ENS domain name.
type: string
nftContractAddress:
description: Contract address of the NFT.
type: string
nftId:
description: Token ID of the NFT.
type: string
collectionName:
description: Name of NFT collection. Use an empty string if the input parameter value is unknown but do not ask user to input empty string.
type: string
required:
- domain
- nftContractAddress
- nftId
- collectionName
type: object
return_value_description: ''
- _name_: aave_supply
description: Deposit or supply tokens into Aave project
parameters:
properties:
amount:
description: Quantity to supply.
type: string
token:
description: Token to supply.
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: aave_borrow
description: Borrow tokens from Aave project
parameters:
properties:
amount:
description: Quantity to borrow.
type: string
token:
description: Token to borrow.
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: aave_repay
description: Repay back borrowed tokens from Aave project
parameters:
properties:
amount:
description: Quantity to repay.
type: string
token:
description: Token to repay.
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: aave_withdraw
description: Withdraw deposited tokens from Aave project
parameters:
properties:
amount:
description: quantity to withdraw.
type: string
token:
description: Token to withdraw.
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: fetch_balance
description: Get the balance of a token in an account or wallet. Don't use this
if we don't have the address.
parameters:
properties:
address:
description: Address of the account or wallet to check the balance of.
type: string
token:
description: Token to get the balance of.
type: string
required:
- token
- address
type: object
return_value_description: balance of a token in an account or wallet, in decimal
units
- _name_: display_yield_farm
description: Used for the Compound project to allow the user to yield farm by putting
tokens or depositing tokens of a certain amount into the Compound project.
parameters:
properties:
amount:
description: Amount of token to deposit in the project.
type: string
network:
description: Network or blockchain of the project. Default to Ethereum if
not specified.
type: string
project:
description: Name of the project to deposit the token in.
type: string
token:
description: Token to deposit in the project.
type: string
required:
- project
- network
- token
- amount
type: object
return_value_description: ''
- _name_: fetch_app_info
description: This function is invoked exclusively to address questions pertaining to the capabilities,
features, and interactions related to the chat assistant application itself. Users may
inquire about the chat app's high-level functionalities, its operational attributes, or
best practices for engagement. However, this function should NOT be triggered for queries
related to specific details of the web3 ecosystem, such as tokens, NFTs, contracts, or any
live data and API access. Ensure that the function responds solely to inquiries about
the chat assistant app's core capabilities and user experience.
parameters:
properties:
query:
description: a standalone query with all relevant contextual details pertaining
to the chat web application.
type: string
required:
- query
type: object
return_value_description: an answer to the question, with suggested followup questions
if available
#
# deprecating scraped sites in favor of link suggestion - leaving for future reference
# in case we ever want to revive
#
# - _name_: fetch_scraped_sites
# description: Answer questions using general content scraped from web3 sites. It
# does not know about this app or about widget magic commands for invoking transactions
# or fetching data about specific things like NFTs or balances.
# parameters:
# properties:
# query:
# description: a standalone question representing information to be retrieved
# from the index.
# type: string
# required:
# - query
# type: object
# return_value_description: a summarized answer with source citations
- _name_: fetch_link_suggestion
description:
Answer questions using general content scraped from web3 sites. It
does not know about this app or about widget magic commands for invoking transactions
or fetching data about specific things like NFTs or balances.
parameters:
properties:
query:
description: a standalone question representing information to be retrieved
from the index.
type: string
required:
- query
type: object
return_value_description: a summarized answer with source citations and links
- _name_: display_zksync_deposit
description: Used to bridge and deposit tokens from mainnet L1 to zksync L2.
parameters:
properties:
amount:
description: quantity to deposit
type: string
token:
description: token to deposit
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: display_zksync_withdraw
description: Used to withdraw tokens from zksync L2 to mainnet L1
parameters:
properties:
amount:
description: quantity to deposit
type: string
token:
description: token to deposit
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: fetch_my_balance
description: Get the balance of a token in the user's connected wallet
parameters:
properties:
token:
description: Token to get the balance of.
type: string
required:
- token
type: object
return_value_description: balance of a token in connected wallet, in decimal units
- _name_: fetch_gas
description: Get all gas used for transactions in an account or wallet
parameters:
properties:
address:
description: Address of the account or wallet to check the gas of.
type: string
required:
- address
type: object
return_value_description: the gas amount used
- _name_: fetch_eth_in
description: Get all ETH inflow into an account or wallet
parameters:
properties:
address:
description: Address of the account or wallet to check the inflow ETH.
type: string
required:
- address
type: object
return_value_description: the inflow ETH amount
- _name_: fetch_eth_out
description: Get all ETH outflow from an account or wallet
parameters:
properties:
address:
description: Address of the account or wallet to check the outflow ETH.
type: string
required:
- address
type: object
return_value_description: the outflow ETH amount
- _name_: display_uniswap
description: 'use the Uniswap decentralized application for trading one token for
another. To create a Uniswap transaction, you need either:
1.) A token to sell, a token to buy, the transaction keyword "SELLAMOUNT", and
an amount to sell, OR
2.) A token to sell, a token to buy, the transaction keyword "BUYAMOUNT", and
an amount to buy.'
parameters:
properties:
amount:
description: Amount of token described by transaction keyword that we are
trying to buy or sell.
type: string
tokenToBuy:
description: Token to buy in the swap transaction.
type: string
tokenToSell:
description: Token to sell in the swap transaction.
type: string
transactionKeyword:
description: Either SELLAMOUNT if amount refers to token to sell or BUYAMOUNT
if amount refers to token to buy.
type: string
required:
- tokenToSell
- tokenToBuy
- transactionKeyword
- amount
type: object
return_value_description: ''
- _name_: fetch_nfts_owned_by_address_or_domain
description: Used to fetch NFTs owned by a wallet address or ENS domain on a particular network
parameters:
properties:
network:
description: Network to fetch NFTs on. Use an empty string if the input parameter value is unknown but do not ask user to input empty string.
type: string
addressOrDomain:
description: Wallet address or ENS domain
type: string
required:
- network
- addressOrDomain
type: object
return_value_description: List of NFT Assets
- _name_: fetch_nfts_owned_by_user
description: Used to fetch NFTs owned by the current user
parameters:
properties:
network:
description: Network to fetch NFTs on. Use an empty string if the input parameter value is unknown but do not ask user to input empty string.
type: string
required:
- network
type: object
return_value_description: List of NFT Assets
- _name_: display_stake_sfrxeth
description: 'Exchange ETH for sfrxETH using the frxETHMinter contract'
parameters:
properties:
receiver:
description: Address to receive the sfrxETH
type: string
value:
description: Amount of ETH to exchange for sfrxETH
type: string
required:
- receiver
- value
type: object
return_value_description: ''
- _name_: display_arbitrum_deposit
description: Used to bridge/deposit ETH or token from mainnet L1 to arbitrum L2.
parameters:
properties:
token:
description: token to deposit/bridge
type: string
amount:
description: amount to deposit
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: display_arbitrum_withdraw
description: Used to withdraw ETH from arbitrum L2 to mainnet L1
parameters:
properties:
token:
description: token to withdraw
type: string
amount:
description: amount to withdraw
type: string
required:
- token
- amount
type: object
return_value_description: ''
- _name_: display_yield_protocol_lend
description: use the yield protocol to lend tokens at a fixed rate
parameters:
properties:
token:
description: the token to lend
type: string
amount:
description: amount of token to lend
type: string
required:
- token
- amount
type: object
return_value_description: ""
- _name_: display_yield_protocol_lend_close
description: use the yield protocol to close a lend position
parameters:
properties:
token:
description: the token to close
type: string
amount:
description: amount of token to close
type: string
required:
- token
- amount
type: object
return_value_description: ""
- _name_: display_yield_protocol_borrow
description: use the yield protocol to borrow a token using a different token as collateral
parameters:
properties:
borrowToken:
description: the token to borrow
type: string
borrowAmount:
description: amount of token to borrow
type: string
collateralToken:
description: the token to use as collateral
type: string
collateralAmount:
description: amount of collateral token to use
type: string
required:
- borrowToken
- borrowAmount
- collateralToken
- collateralAmount
type: object
return_value_description: ""
- _name_: display_yield_protocol_borrow_close
description: use the yield protocol to close a vault (borrow position) made up of debt and collateral
parameters:
properties:
borrowToken:
description: the token that was borrowed
type: string
required:
- borrowToken
type: object
return_value_description: ""
- _name_: display_hop_protocol_bridge
description: use the hop protocol to bridge/deposit tokens from a supported chain to a different supported chain
parameters:
properties:
amount:
description: token amount
type: string
tokenSymbol:
description: token symbol
type: string
fromChain:
description: chain to bridge from
type: string
toChain:
description: chain to bridge to
type: string
required:
- amount
- tokenSymbol
- fromChain
- toChain
type: object
return_value_description: ""
- _name_: display_tx_replay
description: replay a transaction with the same parameters
parameters:
properties:
txHash:
description: the transaction with tx hash to replay
type: string
required:
- txHash
type: object
return_value_description: ""
- _name_: display_deposit_eth_lido
description: This widget is only used when the user wants to deposit/stake ETH into the Lido protocol to get steth
parameters:
properties:
amount:
description: Amount of ETH to deposit/stake into Lido (and obtain stETH)
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: display_withdraw_eth_lido
description: This widget is only used when the user wants to withdraw ETH from Lido (convert stETH to ETH)
parameters:
properties:
amount:
description: Amount of ETH to withdraw from Lido
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: deposit_eth_reth
description: This widget is only used when the user wants to deposit ETH into the rocket pool protocol to get rETH
parameters:
properties:
amount:
description: Amount of ETH to deposit into rocket pool (and obtain rETH)
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: display_withdraw_eth_reth
description: This widget is only used when the user wants to withdraw ETH from rETH (convert rETH to ETH)
parameters:
properties:
amount:
description: Amount of ETH to withdraw from rocket pool
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: display_savings_dai_deposit
description: Used to deposit DAI into the DAI savings account.
parameters:
properties:
amount:
description: Amount of DAI to deposit.
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: display_savings_dai_withdraw
description: Used to withdraw DAI from the DAI savings account.
parameters:
properties:
amount:
description: Amount of DAI to withdraw.
type: string
required:
- amount
type: object
return_value_description: ''
- _name_: display_deposit_vault
description: Used to deposit a token into a vault
parameters:
properties:
depositToken:
description: Token to deposit into the vault.
type: string
amount:
description: Amount of token to deposit.
type: string
vault:
description: Vault to deposit the token in.
type: string
required:
- depositToken
- amount
- vault
type: object
return_value_description: ''
- _name_: display_withdraw_vault
description: Used to withdraw a token from a vault
parameters:
properties:
withdrawToken:
description: Token to withdraw from the vault.
type: string
amount:
description: Amount of token to withdraw.
type: string
vault:
description: Vault to withdraw the token in.
type: string
required:
- withdrawToken
- amount
- vault
type: object
return_value_description: ''