ICP Ninja
ICP Ninja is a web-based code editor and deployment environment for ICP canister smart contracts. Users can choose from a gallery of example projects, then edit and deploy the project directly to ICP without downloading dfx
or obtaining cycles. Projects will be live for 20 minutes unless redeployed. The deployment timer resets on each deployment.
Currently, ICP Ninja supports writing and deploying Motoko backend canisters and React frontend canisters.
Limitations
ICP Ninja is currently undergoing active development and currently implements a few limitations that should be noted. These limitations will be removed and changed as the platform develops.
Chain Fusion: ICP Ninja currently does not support ICP's Chain Fusion features, such as signing and submitting transactions on other chains or making calls to the EVM RPC canister.
System calls: ICP Ninja projects cannot make calls that require cycles, including inter-canister calls or system API calls such as
ic0.call_cycles_add
,ic0.call_cycles_add128
,ic0.cycles_burn128
,sign_with_ecdsa
,sign_with_schnorr
, andhttp_request
.Supported packages: Only certain npm packages are supported by ICP Ninja projects. The
package.json
file in each project contains the supported list. This list cannot be edited.Project structure: Projects created and deployed on ICP Ninja must follow a specific project structure. They can only contain two canisters, a backend and a frontend. The backend canister can only use a single source code file, and the frontend source code folder may only contain one subfolder,
frontend/src
.
Developing ICP Ninja projects with dfx
To continue developing an ICP Ninja project or to add features to the project that exceed the IDE's current limitations, you can download the project's files and use dfx
. From the ICP Ninja IDE, select 'Download files' to download a .zip
folder containing the project's code files.
Then, read the BUILD.md
file included in the downloaded files. It contains further instructions for downloading and using dfx
with your ICP Ninja project.