# Completed: ICDevs.org - Bounty #26 - ICRC-1 Motoko - up to $10k

**URL:** <https://forum.dfinity.org/t/completed-icdevs-org-bounty-26-icrc-1-motoko-up-to-10k/14868>\
**Category:** Bounties & RFPs\
**Tags:** Discussing\
**Created:** [August 14, 2022, 4:16pm UTC](https://forum.dfinity.org/t/completed-icdevs-org-bounty-26-icrc-1-motoko-up-to-10k/14868 "2022-08-14T16:16:12Z")\
**Posts on this page:** 1\
**Showing post:** 34

<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:** [January 7, 2023, 3:00pm UTC](https://forum.dfinity.org/t/completed-icdevs-org-bounty-26-icrc-1-motoko-up-to-10k/14868/34 "2023-01-07T15:00:20Z")

</div>

ICRC-1 uses the following type for accounts:

```auto
type Subaccount = blob;
type Account = record { owner : principal; subaccount : opt Subaccount; };

```

So the default accounts is just:

```auto
let canister account = {
   owner = Principal.fromActor(this);
   subaccount = null;
};

```

Additional accounts can be created by using the subaccount. You theoretically have infinity subaccount.

If you wanted to create an account that was specific for one of your users you would do:

```auto
let canister account = {
   owner = Principal.fromActor(this);
   subaccount = Principal.toBlob(msg.sender); //maybe add some magic and hash for more privacy: see: https://github.com/ORIGYN-SA/origyn_nft/blob/99b9460eab0f841eb621deee7863d926d30421ae/src/origyn_nft_reference/utils.mo#L162
};

```

---

_[View the full topic](https://forum.dfinity.org/t/completed-icdevs-org-bounty-26-icrc-1-motoko-up-to-10k/14868)._
