I am using Substrate Connect in the browser following the docs for a custom chain spec. When I try to create a new ScProvider like the documentation suggests i get an error that I am missing a variable in the constructor.

TS2554: Expected 2-3 arguments, but got 1.
    41 | // Create the provider for the custom chain
    42 |     const customSpec = JSON.stringify(jsonCustomSpec);
  > 43 |     const provider = new ScProvider(customSpec);

In the substrate lib the constructor code is asking for SubstrateConnect. Any ideas on this?

1 Answer 1


You need at least the SubstrateConnect instance (And the relay chain in case of a parachain).

See the example to connect to Statemint:

import { ScProvider} from "@polkadot/rpc-provider";
import * as Sc from "@substrate/connect";
import { ApiPromise } from "@polkadot/api";
import jsonParachainSpec from "./statemint.json";

 const relayProvider = new ScProvider(Sc, Sc.WellKnownChain.polkadot);
 const parachainSpec = JSON.stringify(jsonParachainSpec);
 const provider = new ScProvider(Sc, parachainSpec, relayProvider);
 await provider.connect();

  • this did it. thank you. import * as Sc from "@substrate/connect"; then use the Sc in new ScProvider(Sc, spec); Feb 2, 2023 at 21:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.