Skip to content

Create an organization ​

An organization is one deployment of UmbroOrg26. The transaction returns an address. Save it. There is no network-wide organization address to copy from a config file. /utn-config.js does not list contract addresses.

You need the clone from Deploy with Foundry and Hardhat if you are not using the copy already on Remix, and an account with T-RAIN. Get T-RAIN if it has none.

1. Open Remix ​

Open remix.BASE and upload packages/umbro/src. Keep the subfolders (org and the others the contract imports).

2. Compile ​

Open org/UmbroOrg26.sol.

  1. Set the compiler to 0.8.28.
  2. Open Advanced Configurations.
  3. Turn optimization on, with 200 runs.
  4. Turn via IR on.

Compile. Confirm the compiler version before you change the source. Those settings are what verification has to repeat.

3. Deploy ​

Open the Deploy tab.

  • Environment: UTN Wallet for a passkey account, or Injected Provider for MetaMask.
  • The wallet must be on chain id 20261003. The MetaMask fields are on Add UTN to MetaMask.

The constructor takes four arguments. For a first deploy, use your address for operator and firstAdmin.

ArgumentExampleMeaning
operatoryour addressCan call operatorSetAdmin later
identitykeccak256("northwind")A non-zero bytes32 stored on the contract
firstAdminyour addressFirst member, and an admin
orgNameNorthwindName stored on the contract

keccak256("northwind") is 0x798783426b03356c7def2899ac50a62acfa22ae73d90d34a8f6b36d141f9334c.

Click Deploy and confirm in the wallet. Remix prints the new address.

4. Read it back ​

bash
cast call 0xYOUR_ORG_ADDRESS "standard()(string)" --rpc-url https://rpc.utn.network
cast call 0xYOUR_ORG_ADDRESS "name()(string)" --rpc-url https://rpc.utn.network

standard() returns UMBRO-ORG-26. name() returns the name you passed.

The same read from Node, using abi.UmbroOrg26, is on Deploy with Foundry and Hardhat.

Admins, members, and the contract balance are explained on Organizations and UMBRO-ORG.

Testnet coin T-RAIN · chain 20261003