{"id":13524896,"url":"https://github.com/tuminfei/yuku_icrc7","last_synced_at":"2025-04-01T03:32:57.419Z","repository":{"id":227780896,"uuid":"772354169","full_name":"tuminfei/yuku_icrc7","owner":"tuminfei","description":"ICRC7 (Compatible with EXT standard)","archived":false,"fork":false,"pushed_at":"2024-07-03T01:08:18.000Z","size":100,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-02T09:32:05.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tuminfei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-15T02:55:22.000Z","updated_at":"2024-07-22T12:02:03.000Z","dependencies_parsed_at":"2024-04-02T05:22:09.483Z","dependency_job_id":"a21edb6c-3424-444d-8906-fc4b35041d6b","html_url":"https://github.com/tuminfei/yuku_icrc7","commit_stats":null,"previous_names":["tuminfei/yuku_icrc7"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuminfei%2Fyuku_icrc7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuminfei%2Fyuku_icrc7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuminfei%2Fyuku_icrc7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuminfei%2Fyuku_icrc7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tuminfei","download_url":"https://codeload.github.com/tuminfei/yuku_icrc7/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246578991,"owners_count":20799927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:14.380Z","updated_at":"2025-04-01T03:32:57.176Z","avatar_url":"https://github.com/tuminfei.png","language":"Rust","funding_links":[],"categories":["Fungible and Non-fungible Tokens (NFTs)"],"sub_categories":["Implementations"],"readme":"# ICRC7 (Compatible with EXT standard)\n\n```bash\n# starts replica in background\ndfx start --clean --background\n\nchmod +x gen_candid.sh\n./gen_candid.sh\n```\n\n#### Deploying Factory Canister\n\n```bash\ndfx deploy factory --with-cycles 90000000000000\n```\n\n#### Deploying Icrc7 Canister\n\n```bash\ndfx deploy icrc7 --argument '(record{                                  \nminting_account= opt record {\n    owner = principal \"3yyxm-t5fpe-v32em-ac6lr-xyort-wuscb-dvl4x-3wnwi-hqkyj-xortw-oqe\";                                     \n    subaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n  };                  \nicrc7_supply_cap= null;\nicrc7_description= opt \"ICP Flower Collection\";\ntx_window= null;                        \npermitted_drift= null;                  \nicrc7_max_take_value= null;\nicrc7_max_memo_size= null;\nicrc7_symbol= \"ICFL\";\nicrc7_max_update_batch_size= null;\nicrc7_max_query_batch_size= null;\nicrc7_atomic_batch_transfers= null;\nicrc7_default_take_value= null;\nicrc7_logo= null;\nicrc7_name= \"ICP Flower\"\n})'\n```\n\n#### Minting NFT\n\n```bash\ndfx canister call icrc7 icrc7_mint '(record{                                  \nto= record {\n    owner = principal \"3yyxm-t5fpe-v32em-ac6lr-xyort-wuscb-dvl4x-3wnwi-hqkyj-xortw-oqe\";                                     \n    subaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n  };          \ntoken_id=1;\nmemo= null;\nfrom_subaccount= null;                  \ntoken_description= opt \"Token Number 1\";\ntoken_logo= null;\ntoken_name= null\n})'\n```\n\n#### Transferring tokens\n\n```bash\ndfx canister call icrc7 icrc7_transfer '(vec{\nrecord{\nto=record {\nowner = principal \"t4egw-clf4w-qbpli-svryg-7yqq6-jt2yj-7v755-mabir-zmx6i-vp4fr-fqe\";\nsubaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n};\ntoken_id= 1;\nfrom_subaccount= null;\nmemo= null;\ncreated_at_time= opt 1710480202901000000\n};\nrecord{\nto=record {\nowner = principal \"t4egw-clf4w-qbpli-svryg-7yqq6-jt2yj-7v755-mabir-zmx6i-vp4fr-fqe\";\nsubaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n};\ntoken_id= 2;\nfrom_subaccount= null;\nmemo= null;\ncreated_at_time= opt 1710480202901000000\n}\n})'\n```\n\n```bash\ndfx canister call icrc7 transfer '(record{\n  from= variant{\n    \"principal\"= principal \"3yyxm-t5fpe-v32em-ac6lr-xyort-wuscb-dvl4x-3wnwi-hqkyj-xortw-oqe\"\n  };\n  to= variant{\n    \"principal\"= principal \"t4egw-clf4w-qbpli-svryg-7yqq6-jt2yj-7v755-mabir-zmx6i-vp4fr-fqe\"\n  };\n  token= \"vcvu2-lykor-uwjaa-aaaaa-aeaaa-eaqca-aaaab-q\";\n  notify= false;\n  memo= blob \"123\";\n  subaccount= null;\n  amount= 1\n}\n)'\n```\n\n#### Approve NFT\n\n```bash\ndfx canister call icrc7 icrc7_approve '(vec{record{                                  \nspender= record {\n    owner = principal \"t4egw-clf4w-qbpli-svryg-7yqq6-jt2yj-7v755-mabir-zmx6i-vp4fr-fqe\";                                     \n    subaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n  };          \ntoken_id=1;\nmemo= null;\nexpires_at= null;\nfrom_subaccount= null;\n}\n})'\n```\n\n```bash\ndfx canister call icrc7 approve '(record{\ntoken= \"36wh3-oikor-uwjaa-aaaaa-aeaaa-eaqca-aaaab-a\";\nowner= null;\nallowance= 1;     \nspender= principal \"ajy76-hiaaa-aaaah-aa3mq-cai\";\n}\n)'\n```\n\n#### Set Minting Authority\n\n```bash\ndfx canister --network ic call icrc7 icrc7_set_minting_authority '(record {\n    owner = principal \"j6jni-euxrr-7s6ef-vb2wt-dovvi-u7772-a6exj-kdhru-swdod-q3w44-uae\";                                     \n    subaccount = opt blob \"\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\";\n})'\n```\n\n#### Deploying Tansaction Log Canister\n\n```bash\ndfx deploy transaction_log --argument '(record{                                  \nparent_canister_id= principal \"bkyz2-fmaaa-aaaaa-qaaaq-cai\";\n})'\n```\n\n#### Set ICRC7 Archive Tansaction Log Canister\n\n```bash\ndfx canister call icrc7 icrc7_set_archive_log_canister '(principal \"be2us-64aaa-aaaaa-qaabq-cai\")'\n```\n\n#### Sync ICRC7 Archive Tansaction Log\n\n```bash\ndfx canister call icrc7 icrc7_archive_logs\n```\n\n## Compatible with EXT interface\n\n### ext-core\n\nbalance: query (request : BalanceRequest) -\u003e async BalanceResponse;\n\ntransfer: shared (request : TransferRequest) -\u003e async TransferResponse;\n\n### nonfungible\n\nbearer: shared query (token : TokenIdentifier) -\u003e async Result\u003cAccountIdentifier, CommonError\u003e;\n\nmintNFT: shared (request : MintRequest) -\u003e async ();\n\n### common\n\nmetadata: shared query (token : TokenIdentifier) -\u003e async Result\u003cMetadata, CommonError\u003e;\n\nsupply: shared query (token : TokenIdentifier) -\u003e async Result\u003cBalance, CommonError\u003e;\n\n### allowance\n\nallowance: shared query (request : AllowanceRequest) -\u003e async async Result\u003cBalance, CommonError\u003e;\n\napprove: shared (request : ApproveRequest) -\u003e async ();\n\n### other\n\nbatchMintNFT: shared (request : vec MintRequest) -\u003e async ();\n\ngetTokenIdentifier : (nat) -\u003e (text) query;\n\nextensions : () -\u003e (vec text) query;\n\n### Transfer support address\n\nBy setting principal mapping address, support using address when transfer\nif26n-aqaaa-aaaah-adzya-cai\n\n45da3-liaaa-aaaah-ad2mq-cai\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuminfei%2Fyuku_icrc7","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuminfei%2Fyuku_icrc7","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuminfei%2Fyuku_icrc7/lists"}