# X-Team feat. IOTA Foundation
The X-Team members are invited to join the Internal Testnet made up from our bleeding edge builds (node software, explorer, libraries). The goals is to get community feedback from capable individuals as soon as possible in our development cycle as to ensure that the products built are of high quality before they are being pushed out to the broader public (meaning deployed on our Public Testnet).
## Stardust
This upgrade is the biggest yet to IOTA and we added lots of different new functionalities on L1 which also tremendously increased the complexity of the protocol. Stardust does not only provide the means to provide anchor points for ISC but also enables cross-ISC transfers and making our protocol capable of managing more assets than just the native chain token.
Head over to the Tangle Improvement Proposal (TIP) repository to read the [TIPs that make Stardust up](https://github.com/iotaledger/tips#stardust-tips).
## Internal Testnet
This network (also called Alphanet) is subject to be reset and getting deployments quite frequently (cadence is every 2 weeks or shorter if we deem a change to be deployed immediately). Do not expect your previous data to be around after deployments.
If the data is required to be around or a bigger timescale is required to work on your application, it is suggested to run a private Tangle by using Hornet's [private Tangle setup files (Docker)](https://github.com/iotaledger/hornet/releases/download/v2.0.0-alpha17/HORNET-2.0.0-alpha17-private_tangle.tar.gz).
Interacting with the Internal Testnet requires users to be up to date with our TIPs, as changes are most likely reflected there before there is any wider documentation available for it (there might be rudimentary API docs in code but no guides and tutorials).
Note that as of now, ISC is not yet fully ready for Stardust and therefore no ISC chain is deployed. We will update the Internal Testnet with an ISC chain when it becomes available.
The endpoints to interact with the Internal Testnet are:
- Node API: https://api.alphanet.iotaledger.net
- Example /info endpoint of the core API: https://api.alphanet.iotaledger.net/api/v2/info
- Enabled plugins and their routes:
- /api/plugins/debug/v1,
- /api/plugins/participation/v1,
- /api/plugins/indexer/v1
- /api/plugins/mqtt/v1
- Faucet: https://faucet.alphanet.iotaledger.net
- Faucet enqueue API: https://faucet.alphanet.iotaledger.net/api/enqueue
- Explorer: https://explorer.alphanet.iotaledger.net
- MQTT: mqtt.alphanet.iotaledger.net:1883
## Communication Channels
The IF will announce when deployments are happening to the Internal Testnet in the #x-team-shimmer Discord channel and we will not wait for X-Team members to give us the green light to do so. This should usually not be a problem as we adhere to the 2 weeks release cadence.
Primarily we would like to collect feedback around our products in the [form](https://dyno.gg/form/65b51bf7).
Issue reporting should be done directly in the form of GitHub issues in the corresponding repositories. Feel free to inquire with fellow X-Team members before on Discord.
Additionally, we are compiling a [FAQ document for Stardust](https://hackmd.io/SwCqCbijTZy9D0lcEyplgA). The document will be filled based on questions from you, so feel free to include here questions you posted and answers you received on Discord/other platforms.
If you feel like there is an architectural problem or a way how APIs expose functionality doesn't fit your needs, try to ping the corresponding IF members within Discord to open up a discussion. If there is a need to materialize ideas around a product or a feature, either write an GitHub issue or if you expect there to be a wider discussion, write a GitHub discussion thread.
It is suggested to use the following threads in the #x-team-shimmer channel to keep topics separated and a more organized discussion

These threads are visibile by clicking the #4 symbol in the top right section of Discord

The **DevEx** team will be available to support you in Discord
Feel free to ping our DevEx team members
- Sebastian H.
- Dr.Electron
- Jeroen van den Hout
- Kumar Anirudha
## Components to be tested
### Node Software
- Hornet node
- Stardust branch: https://github.com/iotaledger/hornet/tree/develop
- Releases starting from v2.0.0-alpha17: https://github.com/iotaledger/hornet/releases
- Bee node
- Stardust branch: https://github.com/iotaledger/bee/tree/shimmer-develop
- Releases starting from bee-node-1.0.0-alpha1: https://github.com/iotaledger/bee/releases
### IOTA Node Extension (INX) Applications
- INX interface definition: https://github.com/iotaledger/inx
- INX App Framework (to be used by inx applications): https://github.com/iotaledger/inx-app
- INX UTXO Indexer: https://github.com/iotaledger/inx-indexer
- INX MQTT plugin: https://github.com/iotaledger/inx-mqtt
- INX Coordinator: https://github.com/iotaledger/inx-coordinator
- INX Faucet: https://github.com/iotaledger/inx-faucet
- INX Participation: https://github.com/iotaledger/inx-participation
- INX Spammer: https://github.com/iotaledger/inx-spammer
- INX Permanode: https://github.com/iotaledger/inx-chronicle
- INX Proof-of-Inclusion: https://github.com/iotaledger/inx-poi
### Client Libraries
- iota.rs
- Stardust branch: https://github.com/iotaledger/iota.rs/tree/develop
- Python, NodeJS, Java bindings: https://github.com/iotaledger/iota.rs/tree/develop/bindings
- iota.go
- Stardust branch: https://github.com/iotaledger/iota.go/tree/v3
- iota.js
- Stardust branch: https://github.com/iotaledger/iota.js/tree/feat/stardust
- iota.c
- Stardust branch: https://github.com/iotaledger/iota.c
### Wallet Library
- wallet.rs
- Stardust branch: https://github.com/iotaledger/wallet.rs/tree/develop
- NodeJS, Python, Swift bindings: https://github.com/iotaledger/wallet.rs/tree/develop/bindings
- cli-wallet
- Stardust branch: https://github.com/iotaledger/cli-wallet/tree/develop
### Tools
- Node Dashboard
- Stardust branch: https://github.com/iotaledger/node-dashboard/tree/feat/stardust
- Releases starting from 2.0.0-alpha6: https://github.com/iotaledger/node-dashboard/releases
- Explorer
- Stardust branch: https://github.com/iotaledger/explorer/tree/stardust
- Pre-releases with binaries: https://github.com/iotaledger/cli-wallet/releases
## Docs
Documentation is being worked on, we also need your help to identify the gaps and where to improve.
- WIP wiki page with versioning (Stardust = Develop) deployed: https://versioning.iota-community.org/
- WIP Stardust ledger docs: https://versioning.iota-community.org/introduction/develop/welcome
- What guides/tutorials you'd love to see on the wiki? Add them as issue requests [here](https://github.com/iota-community/iota-wiki/issues/new?assignees=&labels=documentation&template=topic-request.md&title=).
- For code examples, try to look for `docs`/`examples` first in the components Stardust branch of each component.
## What should I test as an X-Team member?
If you do not have any ideas for applications or use cases you want to try out, we supply you with the following list to give you some realms to explore:
### Node Software
- Install HORNET on a VPS using the [Docker Compose files](https://github.com/iotaledger/hornet/releases/download/v2.0.0-alpha17/HORNET-2.0.0-alpha17-docker-example.tar.gz). Extra points for contributing a better README.
- Check that you can access the node API under the configured domain.
- Check that you can access the dashboard under the configured domain,
- Check that you can access the monitoring (Grafana) under the configured domain. Extra points for contributing a Grafana dashboard to be included in the setup.
- Verify that installed indexer plugin API returns correct data based on [TIP-26](https://github.com/iotaledger/tips/pull/62)
- Verify that installed MQTT plugin streams data according to [TIP-28](https://github.com/iotaledger/tips/pull/66)
- Verify that the node dashboard works correctly. If not, add issues to [Node-Dashboard](https://github.com/iotaledger/node-dashboard/issues)
- Generate an inclusion proof via the local instance of [INX PoI application](https://github.com/iotaledger/inx-poi).
- Verify an inclusion proof via the local instance of INX PoI application. (hint: enable JWT in node config)
### Client Libraries
#### iota.rs & its bindings
- Try out core api calls: https://github.com/iotaledger/iota.rs/tree/develop/examples/node_api_core
- Create all types of outputs: Basic, Alias, Foundry, NFT https://github.com/iotaledger/iota.rs/tree/develop/examples/outputs
- Define all possible unlock conditions and features for outputs [TIP-18](https://github.com/lzpap/tips/blob/master/tips/TIP-0018/tip-0018.md#new-functionalities-in-outputs) for reference
- Mint native tokens
- Mint native tokens with [TIP-30](https://github.com/iotaledger/tips/blob/token-metadata-schema/tips/TIP-0030/tip-0030.md) compliant , immutable metadata
- Mint an NFT
- Mint an NFT with [TIP-27](https://github.com/iotaledger/tips/blob/197c87fc561c49705f5dcd9753191c1e62093c95/tips/TIP-0027/irc27.schema.json) compliant, immutable metadata
#### wallet.rs & its bindings
- Create AliasOutputs and FoundryOutputs
- Mint, ~~burn and melt~~ native token
- Mint NFTOutputs
- Make an AliasOutput own multiple other outputs
- Make transfers using conditionals such as timelocks and expirations.
- Restore used wallets and check if everything is as expected
#### Embedded/IoT Development
- Create Arduino sketch with [iota.c](https://github.com/iotaledger/iota.c/tree/develop) and ESP32 dev board
- [iota.c for Arduino-ESP32 installation](https://github.com/oopsmonk/iota.c/blob/doc-api-intro/docs/arduino_esp32.md)
- IOTA token transfer
- Mint, burn and melt native token
- Create client/wallet applications with [esp32-client-sdk](https://github.com/iotaledger/esp32-client-sdk) and ESP32 dev board
- IOTA token transfer
- Create client/wallet applications with [iota.c](https://github.com/iotaledger/iota.c/tree/develop) on Raspberry Pi or Linux
- IOTA token transfer
- Mint, burn and melt native token
- [Example codes](https://github.com/iotaledger/iota.c/tree/develop/examples)
### Tooling
- Interact with the node dashboard
- Interact with the Explorer
- Searching all three address types in both hex and bech32 format
- Searching for a Foundry with foundryId
- Search with a tokenId
- Searching for block with outputId, transactionId, blockId
- Search for a Foundry which owns NativeTokens, and check if they are displayed properly on Foundry page
- Data in outputs on block page should make sense given a transaction