Skip to content

Programmable Wallets for Salesforce, powered by Circle Programmable Wallets, is an open source solution built on Circle Programmable Wallet technology to operating 100% within the Salesforce ecosystem.

License

Notifications You must be signed in to change notification settings

MuKnSys/salesforce-programmable-wallets

Repository files navigation

Salesforce Programmable Wallets

Programmable Wallets for Salesforce, powered by Circle Programmable Wallets, is an open source solution built on Circle Programmable Wallet technology to operating 100% within the Salesforce ecosystem.

Key management is abstracted as Developer Managed Wallets, using Salesforce permissions to manage wallet safety. The company will be able to grant read, write, and execute permissions on the Web3 assets without leaving the environment they are comfortable with.

Requirements

This is a basic demonstration of a Salesforce DX Project. The following Salesforce developer tools are prerequisites to install and set up Salesforce Programmable Wallets from this repository.

  • Salesforce DX Project Setup Information: Download the SF CLI tools, and use them to deploy to a Developer Edition Scratch Org.

  • Salesforce Developer Edition: You can get a free Salesforce Developer Edition account from Salesforce. Sign up at: https://developer.salesforce.com/signup

Installation Instructions / How to Test the App

  1. Clone the repository. git clone https://github.com/MuKnSys/salesforce-programmable-wallets.git
  2. Change directory to the cloned repository. cd salesforce-programmable-wallets
  3. Checkout the main branch.
  4. Log into the Dev Hub Org by running sf org login web --set-default-dev-hub --alias DevHub --instance-url https://login.salesforce.com and entering your username and password.
  5. Create a Scratch Org by running sf org create scratch -f ./config/project-scratch-def.json -a dev -d -y 30.
    • The -f flag is a path to config file (no need to change it).
    • The -a flag is an alias of the scratch org, if you create multiple scratch orgs you can give them unique aliases to easier refer to them.
    • The -d flag marks the newly created scratch org as default. If you don't mark it as default you will have to reference it by username or alias, or you will have to use sf config set target-org YourAliasOrUsername to set is as default.
    • The -y flag sets the number of days before the org expires.
    • Use the -h flag for help.
    • For more details: developer docs scratch orgs create.
  6. Push the code to the Scratch Org: sf project deploy start.
  7. Connect to the Salesforce Scratch Org: sf org open.

Required Permission Set and Next Steps in the Setup Process

  1. Assign permission set: Programmable Wallets Admin to your user
  2. Use App Launcher to open Programmable Wallets Setup.
  3. Please perform all the setup steps.

Status of Project

Milestone 1 - Project Setup

The initial Setup App and Screen is built. It allows you to connect to the Programmable Wallet system.

This Open Source project requires you to register a developer key. This will be clarified in Milestone 3 as we prepare for final release. We are able to connect to the developer account. All "scaffolding is done."

For an explanation of the screen, please view Milestone 1 Explainer Video.

Milestone 2 - Wallet Sets, Wallets, etc.

Milestone 2 demostrates the creation of Wallet Sets, Wallets of both types, and them showing up on the Circle Console. Milestone 3 was created contemporanously to Milestone 2.

To utilize the Wallet Sets and Wallets, follow the setup steps below (Milestone 3) to create and register your API key.

  1. Set up the API Key and Cypher Text (Milestone 3).
  2. Launch Programmable Wallets for Salesforce in the App Switcher.
  3. Create a New Wallet Set (name it, hit create).
  4. Create one or more new Wallets in the Wallet Set.
  5. Verify your Wallet on the Circle Console Developer Controlled Wallets.

To see these features, watch Milestone 2 during Milestone 2/3 Demo Video.

Milestone 3 - API Key, Cypher Text Creation and Storage

This Open Source Project now has custom Lightning Web Components to run the JavaScript necessary for registration.

  1. Create a Circle Developer Account and Login Circle Console.
  2. Check your email to confirm and complete the account.
  3. Grant your user the Permission Set, "Programmable Wallets Admin".
  4. Click the Gear for Setup.
  5. Quick Find "Users".
  6. Click on your user and scroll down to Permission Sets.
  7. Edit Assignments, and give yourself the Programmable Wallets Admin permission.
  8. In Salesforce Programmable Wallet Setup, Start the Configuration Process
  9. Create an API Key on the API & Client Keys of the Circle Console.
  10. Register the Cypher Text on the Circle Console Entity Secret Page.
  11. Follow the Step by Step Creation Process to generate the Wallets (above).

Note: There is no supported way to copy the Cypher Text except via the NodeJS or Python SDKs. Therefore you must copy and paste it into the console.

Milestone 2 and 3 Demo Video

Submitting changes to GitHub

  1. Create a feature / change branch - you will need to fork the project.
  2. Pull changes from Salesforce sf project retrieve start.
  3. Push changes to GitHub.
  4. Create a pull request.

Additional Resources

Copyright and License

Copyright 2024 Web3 Enabler, Inc. Web3 Wallet for Salesforce is distributed under the GPL license, version 3.0. For more information, see the LICENSE file.

About

Programmable Wallets for Salesforce, powered by Circle Programmable Wallets, is an open source solution built on Circle Programmable Wallet technology to operating 100% within the Salesforce ecosystem.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages