# Custodial Wallet on Flow

**URL:** <https://forum.flow.com/t/custodial-wallet-on-flow/2087>\
**Category:** Uncategorized\
**Created:** [June 17, 2021, 7:45am UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087 "2021-06-17T07:45:39Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 17, 2021, 7:45am UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/1 "2021-06-17T07:45:39Z")

</div>

Hey everyone, based on this article [Flow: Inside Flow: The Power of Simplicity with FCL](https://www.onflow.org/post/inside-flow-the-power-of-simplicity-with-fcl) could you provide any guidance on how to build a custodial wallet with FCL?

Tnx

---

<div class="post-metadata">

**Author:** ![kimcodeashian](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/kimcodeashian/32/498_2.png) [@kimcodeashian](https://forum.flow.com/u/kimcodeashian)\
**Post date:** [June 18, 2021, 1:08am UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/2 "2021-06-18T01:08:16Z")

</div>

Hey @dh77! Super cool that you’re interested in building a custodial wallet.

Just for clarification, are you building custodial wallet for the purpose of

- users to use on other applications, or
- for control over what users can do on your own application?

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 18, 2021, 7:46am UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/3 "2021-06-18T07:46:19Z")

</div>

Tnx @kimcodeashian - we are building something similar to NBA Top Shot - the custodial wallet will hold all the private keys from our users to control what they can do in our own application.

---

<div class="post-metadata">

**Author:** ![bluesign](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/bluesign/32/1359_2.png) [@bluesign](https://forum.flow.com/u/bluesign)\
**Post date:** [June 18, 2021, 9:57am UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/4 "2021-06-18T09:57:56Z")

</div>

hey @dh77, You need to be a FCL wallet provider if you will use FCL for custodial wallet. you can check out [GitHub - onflow/flow-wallet-api-node-demo](https://github.com/onflow/flow-wallet-api-node-demo)

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 18, 2021, 3:46pm UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/5 "2021-06-18T15:46:18Z")

</div>

Thank you @bluesign Appreciate it. That is very interesting indeed - but still in very early development. It looks promising though. It would definitely be great to get more documentation about the usage - @pete 🙂

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 23, 2021, 2:40pm UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/6 "2021-06-23T14:40:00Z")

</div>

Adding a bit more to this topic - I was given a hint that could solve this:  
You can enable people to use Blocto wallet for auth which gives them full control over their accounts. But, if you adjust the Smart Contract a little bit, you can restrict the token transfer from one account to another - every transfer would need a centralised approval, and this will have to come from you.  
This way, the users own full control of their accounts but can not transfer tokens without your approval. Sounds like a cool idea. Thoughts?

---

<div class="post-metadata">

**Author:** ![bluesign](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.flow.com/bluesign/32/1359_2.png) [@bluesign](https://forum.flow.com/u/bluesign)\
**Post date:** [June 23, 2021, 3:25pm UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/7 "2021-06-23T15:25:26Z")

</div>

“you can restrict the token transfer from one account to another”

this part is a little problematic 🙂 Tokens are just resources, users can basically move them without your contract.

---

<div class="post-metadata">

**Author:** ![dh77](https://avatars.discourse-cdn.com/v4/letter/d/ac91a4/32.png) [@dh77](https://forum.flow.com/u/dh77)\
**Post date:** [June 25, 2021, 2:23pm UTC](https://forum.flow.com/t/custodial-wallet-on-flow/2087/8 "2021-06-25T14:23:31Z")

</div>

Tnx @bluesign - this is the piece of code that has been shown to me (it should handle the approval process):

access(all) contract SimpleAdmin {  
pub resource Admin {  
pub fun check(): Bool {  
return true  
}  
}

```
init() {
    let admin <- create Admin()
    self.account.save(<-admin, to: /storage/simpleAdmin)
    self.account.link<&Admin>(/private/simpleAdminCapability, target: /storage/simpleAdmin)
}

```

}
