SuisBack

Questions

What this needs from you, what it can build, and what it refuses to. Anything not answered here goes to support@suis.cloud.

Getting started

Do I need to install anything?

No. No sui CLI, no Rust toolchain, no local node. A Sui wallet in the browser is the whole requirement.

Which wallets work?

Any wallet that implements the Sui Wallet Standard. They are found automatically when you open the sign-in page — there is no list here to be added to.

Slush can also make an account out of a Google or Apple sign-in, which is the quickest way in if you have never held a wallet. One thing to know about those accounts: one cannot be a multisig signer here. Its signatures are bound to a session and stop verifying when that session ends, so a council holding one would eventually be unable to act.

Which network does this work on?

mainnet, testnet and devnet.

The network belongs to the package rather than to your account, so one workspace can hold a testnet package you are still poking at and a mainnet one you have shipped, side by side.

Do I need SUI to try it?

Not to look around. Reads are simulated and never signed, so they cost nothing and change nothing.

Publishing a package and calling a write cost gas, paid by your wallet on whichever network you are on. There is no faucet in this app — use the usual Sui one for testnet.

What does it cost?

Nothing. There is no plan, no tier and no billing — not as a free period, but as a thing that has not been built.

Your wallet and signing

Is signing in a transaction?

No. It is one personal message carrying a random challenge this server issued. No gas is spent and nothing on chain changes. What it leaves is a session cookie that lasts a week.

Can you see my private key?

No, and there is no field anywhere here that would accept one. Signing happens inside your wallet and this app receives the finished signature.

Writing and building Move

Where does my code compile?

On a server, in a container running the Sui toolchain — not in your browser.

The version is pinned rather than tracking the newest release, so a build does today what it did last week. Which version that is appears under the Build button in the editor.

Can I use a dependency from GitHub?

No, and this is the limit most likely to surprise you. The build container has no route to the internet at all, and the Move.toml is written by the service rather than by you, so a git dependency cannot even be named.

The Sui framework is there. Nothing else is. That is a real constraint on what you can build here, and it is the price of a build that cannot be talked into cloning a repository.

Why is there no Move.toml in the file tree?

Because the service writes it, from the package name and the network you are building for. A manifest you cannot write is a manifest you cannot get wrong — and it is what keeps the answer above true.

How much source can one package hold?

Forty files, 200 KB per file, and 3 MB in total.

Why was my file path rejected?

Files live under sources/ or tests/, at most two folders deep, and a name is letters, digits, underscores or hyphens ending in .move.

Can I bring code I already have?

Yes, as a zip or a folder. If what you drop in holds more than one package, they are split apart, and each one builds and publishes on its own.

Can I run Move tests?

Yes. Anything under tests/ gets a Test button at the top right of the editor, and a single #[test] can be run on its own from the line above it.

A run gets sixty seconds and a gas budget of one billion per test — enough for anything that is testing logic rather than measuring gas.

My build is slow, or it was refused. What are the limits?

A build gets twenty seconds and a test run sixty. Thirty requests a minute per wallet, and twenty jobs may be waiting at once; past that you are asked to try again shortly.

Who can read my source?

The members of your workspace, and the build container while it is compiling.

That service records how long a build took, how many diagnostics it produced and their codes — never the source itself — and deletes the directory afterwards.

Packages, and calling them

What does registering a package do?

It bookmarks an address on a network and reads that package’s public interface from a fullnode, so its functions become forms you can fill in.

It publishes nothing, changes nothing on chain, and claims nothing about the package. Anybody can register any address.

Which functions show up?

The ones the package exposes — entry functions and public ones.

What is the difference between a read and a write here?

A function that takes nothing by &mut, is not entry, and returns something is treated as a read. Reads are only ever simulated: no signature, no gas, no change.

Everything else is a write. It is simulated while you fill the form — showing the gas it would cost, the objects it would create, change or delete, and the balance changes — and only then goes to your wallet to be signed.

A function is missing, or the form will not let me call it.

Some signatures have no honest form. Not supported: a type argument you have not chosen yet, Signer, a vector of objects, and a function returning a value that cannot be dropped and that nothing consumes.

Going the other way, Clock, Random, the system state and the deny list are filled in for you rather than asked for.

I upgraded my package. What now?

The Versions tab lists every version the chain knows about. Pick one and the registration points at it.

The old registration is left alone unless you ask for it to go — and it is kept anyway if a council hangs off it, or if a proposal there is still collecting signatures. Neither of those blocks the retarget itself.

What is a council here?

A shared object living in a governance package. Registering one tells this workspace to watch it.

The contract decides who may approve what, exactly as it would for somebody using the CLI. Watching a council here does not make it legitimate — check the id against the package you actually trust.

Working with other people

How do I invite somebody?

By wallet address. They do not need to have signed in here before — the workspace is waiting for them when they do.

What can each role do?

A member reads everything, and creates, signs and cancels their own proposals.

An admin also invites people, registers and removes packages and councils, and cancels anybody’s proposal. An owner also changes roles, removes anybody, renames the workspace and deletes it.

How do I cancel an invite?

Remove the member. There is no pending state to withdraw — the address is a member from the moment it is added, whether or not anybody has signed in with it.

What happens if I delete a workspace?

It goes for everybody in it, and it does not come back. It will refuse while any proposal is still collecting signatures, so those have to be dealt with first — a half-collected proposal cannot be finished from anywhere once its workspace is gone.

Nothing on chain changes. Councils and multisig addresses carry on without this app.

What this is not, and how to ask

Is it audited? Is the source public?

Neither, and both are worth knowing before you put anything real through it. What that means in practice — and what is done instead — is set out on the security page.

What this can and cannot do

Something is broken, or my question is not here.

Write to the address below. Include the network, and the package address or workspace id if the question is about one — it is the difference between an answer and a round of questions first.

This is one person’s project, so expect a reply in days rather than minutes.

support@suis.cloud