2n20 creator setup
The official 2n20 CLI prepares trading-key consent on the computer or server where your existing strategy runs. It supplies public account configuration and read-only checks. You supply and run your own strategy in any language.
Requires Python 3.10 or later on Linux, macOS or WSL. Run commands in your strategy's working directory with its Python environment activated.
Copy the setup command from Step 2 of your vault page:
2n20 setup --vault 'https://2n20.org/vaults/<your-vault-address>?network=mainnet'
The CLI verifies the chain, factory, deployed contract code, vault bindings, trading-account bindings, consent capability and next approval nonce from public contract reads. This release bundles the currently supported HyperEVM mainnet deployment. Other networks and unsupported deployments fail closed. Vault URLs can select only a vault address and network. They cannot override RPC endpoints or supply an approval contract, trading account or nonce.
Setup creates a new directory with mode 700 under your current working
directory. Use --output <new-directory> to choose its name. The parent must
already exist. Setup never reuses an existing output directory.
strategy.key: your new private trading key, mode600. Keep it only on your strategy machine. Never paste, import, upload, commit or log this file.consent.public.json: a public signature, trading-key address, vault, approval contract, nonce and expiry. Import or paste only this file into Step 2 and approve it with your creator wallet.setup.public.json: public recovery metadata used byrenew.strategy.public.json: public account settings for your existing strategy.
Keep the directory and key when a network read fails. If consent expires (after one hour), or another approval changes its nonce, run on that same strategy machine:
2n20 renew --directory ./<your-setup-directory>
Renew retains the existing private key and writes a new uniquely named
consent.<time>-<random>.public.json. Import that new public file. If the key
has already been used, create a fresh setup in a new directory. Existing keys
and files are never replaced. The app and contract recheck nonce and expiry
when you approve.
After Step 2 confirms trading access, get the public settings for Step 3:
2n20 config --vault 'https://2n20.org/vaults/<your-vault-address>?network=mainnet'
2n20 status --vault 'https://2n20.org/vaults/<your-vault-address>?network=mainnet'
Use tradingAccount as your strategy's Hyperliquid account address. It is
separate from the vault holding shares and the approvalContract your
creator wallet calls. Load the private key locally using your strategy's own
key configuration. The CLI does not load your existing strategy's secrets.
Status checks the current public key approval, account binding and funding.
Missing or inconsistent public evidence never counts as trading readiness.
Exit code 0 means public trading access was verified, 2 means it is
pending or unverified, and 1 means verification could not complete. This
check does not prove your strategy is running. Run its own connection check
before starting it. These commands submit no transactions, move no collateral
and place no orders. Setup does not depend on temporary Hyperliquid balance or
funding API availability.
To check a public consent before importing it:
2n20 check-consent --vault 'https://2n20.org/vaults/<your-vault-address>?network=mainnet' --consent ./<your-setup-directory>/consent.public.json
Reproducible development and release
requirements-release.txt contains the reviewed, fully pinned build and
runtime graph with registry SHA-256 hashes. dependency-review.json records
its registry publication dates. All third-party release files were at least
14 days old when reviewed on October 3, 2026. The wheel also pins the complete
runtime graph to retain these reviewed versions for ordinary installs.
The only underlying runtime library is eth-account and its dependencies;
Hyperliquid's SDK is not required.
python3 -m venv .venv
.venv/bin/python -m pip install --require-hashes -r requirements-release.txt
PYTHONPATH=src .venv/bin/python -m unittest discover -s tests -v
SOURCE_DATE_EPOCH=1790985600 .venv/bin/python scripts/build_release.py
The release script calls standard python -m build --no-isolation, verifies
archive paths, and normalizes the source archive ownership, timestamps and
gzip header. Keep SOURCE_DATE_EPOCH fixed for a release. Repeated builds from
the same source and reviewed environment produce identical wheel and source
archive bytes. Use --outdir <directory> to compare independent builds.
Release trust anchors are copied from the repository's reviewed active
deployments/development.json, never fetched as authority from a website.
A supported deployment change requires reviewing and releasing the package.
Publishing uses GitHub Actions OIDC Trusted Publishing with dedicated PyPI
and TestPyPI environments, not stored API tokens. Maintainer release steps
and publisher identities are in the repository operations runbook.
Metadata
Release files for 2n20 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| 2n20-0.1.0.tar.gz | 84.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 2n20-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 105.9 kB
Release files / 2n20-0.1.0.tar.gz
| Download URL | 2n20-0.1.0.tar.gz |
|---|---|
| Size | 84.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb74370ea5189d1fcde27247ba177865d3b972e5dd18b0265b3b8a4a89db19b2
|
|
BLAKE2b-256 checksum How to use checksums |
7bf0c977858cf86f790a33175d00903dca4cb174ce22642af3548f57438588e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / 2n20-0.1.0-py3-none-any.whl
| Download URL | 2n20-0.1.0-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
59590a35380adeb7aebaf72cb404e171ae636d496dcbaf3b7f21f3b6a35f1e8f
|
|
BLAKE2b-256 checksum How to use checksums |
2f86425861deae10712cf3b47390910c2ebe3ddebe10ffb1dab3470ff0235ff4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency log