Error creating a model from CLI

I have been playing around with the composites on models from the published catalog and thanks for the great documentation, but I am stuck on the very first step when I try to create my own model. I am following the steps as shown here

It is a rather simple model where I want to have a bunch of EVM compatible addresses and further, create relations with other models that include information on those addresses.

type evmAccount @createModel(accountRelation: LIST, description: "EVM account address aka public key") {
    accountAddress: String! @string(minLength:42, maxLength: 42)
}

The error I get when I try to create the model so I can get a model ID

➜  models composedb composite:create evmAccount.graphql --output=evmAccount.json --ceramic-url=http://0.0.0.0:7007
⠋ Creating the composite...Error: No controller specified
    at Model._makeRawGenesis (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@ceramicnetwork+stream-model@1.7.0/node_modules/@ceramicnetwork/stream-model/lib/model.js:147:23)
    at Model._makeGenesis (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@ceramicnetwork+stream-model@1.7.0/node_modules/@ceramicnetwork/stream-model/lib/model.js:134:35)
    at Model.create (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@ceramicnetwork+stream-model@1.7.0/node_modules/@ceramicnetwork/stream-model/lib/model.js:57:38)
    at file:///Users/anomit/Library/pnpm/global/5/.pnpm/@composedb+devtools@0.4.4_graphql@16.6.0_typescript@5.0.4/node_modules/@composedb/devtools/dist/composite.js:186:37
    at Array.map (<anonymous>)
    at Composite.create (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@composedb+devtools@0.4.4_graphql@16.6.0_typescript@5.0.4/node_modules/@composedb/devtools/dist/composite.js:182:31)
    at createComposite (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@composedb+devtools-node@0.4.4_@composedb+devtools@0.4.4/node_modules/@composedb/devtools-node/dist/fs.js:21:28)
    at async CreateComposite.run (file:///Users/anomit/Library/pnpm/global/5/.pnpm/@composedb+cli@0.4.4_@types+node@20.1.2_graphql@16.6.0_typescript@5.0.4/node_modules/@composedb/cli/dist/commands/composite/create.js:21:31)
    at async CreateComposite._run (/Users/anomit/Library/pnpm/global/5/.pnpm/@oclif+core@2.8.5_@types+node@20.1.2_typescript@5.0.4/node_modules/@oclif/core/lib/command.js:117:22)
    at async Config.runCommand (/Users/anomit/Library/pnpm/global/5/.pnpm/@oclif+core@2.8.5_@types+node@20.1.2_typescript@5.0.4/node_modules/@oclif/core/lib/config/config.js:329:25)
✖ No controller specified

I am running a ceramic daemon on the clay testnet with the following config. Mac OS v13.3, pnpm v8.5.0

{
  "anchor": {
    "auth-method": "did"
  },
  "http-api": {
    "cors-allowed-origins": [
      ".*"
    ],
    "admin-dids": [
      "did:key:<redacted>"
    ]
  },
  "ipfs": {
    "mode": "bundled"
  },
  "logger": {
    "log-level": 2,
    "log-to-files": false
  },
  "metrics": {
    "metrics-exporter-enabled": false
  },
  "network": {
    "name": "testnet-clay"
  },
  "node": {},
  "state-store": {
    "mode": "fs",
    "local-directory": "/Users/anomit/.ceramic/statestore/"
  },
  "indexing": {
    "db": "sqlite:///Users/anomit/.ceramic/indexing.sqlite",
    "allow-queries-before-historical-sync": true,
    "disable-composedb": false,
    "enable-historical-sync": false
  }
}

Any help pointing to where I might be going wrong would be appreciated.

To create models, you’ll need to specify a DID, similar to mutations. You can either set the environment variable DID_PRIVATE_KEY or pass it in on the command line with --did-private-key.

1 Like