Bitcoin Forum
March 04, 2024, 10:02:32 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 115 »
1  Alternate cryptocurrencies / Service Announcements (Altcoins) / Re: Posting for new business transparency, site coming soon .... on: May 08, 2017, 11:38:54 PM
1) We have generated a chain of 10 million sha256 hashes, starting with a server secret that has been repeatedly fed the output of sha256 back into itself 10 million times. The sha256 of the final hash in the chain is: c56c9fe892bd23ff6d20da0b505c86db9acecb6a257a2b79b23dfface1d4ea75, by publicising it here we are preventing any ability to pick an alternate sha256 chain.

2) Parabolic will play through that chain of hashes, in reverse order, and use the hashes to determine the crash point in a probably fair manner.

3) To avoid criticism that the Bitcoin address used in step 1 was carefully chosen to generate lots of "bad" crash points, each hash in the chain will be salted with a client seed, which we have no control of. The client seed will be the block hash of a Bitcoin block that hasn't yet been mined: block 465525.

The reference code (javascript) is as follows:

The method to create the hash chain is simply sha256:
function genGameHash(serverSeed) {
  return crypto.createHash('sha256').update(serverSeed).digest('hex');

The method to convert a game hash, mix it with the picked client seed to a game multiplier:

function crashPointFromHash(serverSeed, clientSeed) {
  function divisible(hash, mod) {
    // We will read in 4 hex at a time, but the first chunk might be a bit smaller
    // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
    var val = 0;
    var o = hash.length % 4;
    for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
      val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;

    return val === 0;

  var hash = crypto.createHmac('sha256', serverSeed).update(clientSeed).digest('hex');

  /* In 1 of 101 games the game crashes instantly. */
  if (divisible(hash, 101))
     return 0;

  /* Use the most significant 52-bit from the hash
     to calculate the crash point */
  var h = parseInt(hash.slice(0,52/4),16);
  var e = Math.pow(2,52);

  return Math.floor((100 * e - h) / (e - h));

The chain could be generated with code such as:

var serverSecret =  'If you knew this, you could steal all my money';
var clientSeed = '0000examplehash';

var gamesToGenerate = 1e7;

var serverSeed = serverSecret;

for (var game = gamesToGenerate; game > 0; --game) {
  serverSeed = genGameHash(serverSeed);
  console.log('Game ' +  game + ' has a crash point of ' + (crashPointFromHash(serverSeed, clientSeed) / 100).toFixed(2) +'x', '\t\tHash: ' + serverSeed);

var terminatingHash = genGameHash(serverSeed);

console.log('The terminating hash is: ', terminatingHash);

Using our chosen starting serverSeed, the hash terminating the chain is c56c9fe892bd23ff6d20da0b505c86db9acecb6a257a2b79b23dfface1d4ea75. That is to say, the first game's hash played under the new provably fair scheme, when hashed will be c56c9fe892bd23ff6d20da0b505c86db9acecb6a257a2b79b23dfface1d4ea75.


Quoted by me, and all. Hi, BTT peeps  Cheesy
2  Alternate cryptocurrencies / Announcements (Altcoins) / Re: DIX on: November 28, 2016, 09:48:06 PM
Someone that has opened those link? are they ok?

The first 4 Nxt-related links are all safe and OK, they are just standard Nxt community sites.
For the rest I have no idea at all......might be a record for the shortest ANN ever, though.
3  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][JNS] Janus|Blockchain secured global business Token sale LIVE on: November 27, 2016, 05:20:02 PM

I've been far too busy to reply, but I wanted to say that I think that this post is probably the best in this entire thread. I can start off by saying that I have invested a small amount in the crowdfunding, but I am sure that others have chosen to stay away, not only by the competition, but the uncertainty of the NXT and Ardor platforms, the complexity of the project and the lack of clarity - eg lots of buzzwords in the white paper without clear goals and deliverables. I have noticed a lot of cheerleading and to the moon(TM) as any other ICO thread, but that comes off almost silly rather than building confidence in the team or the project.

I am happy for the Janus teams honesty and willing to answer questions and clear out uncertainties. The post above strengthens my image of the team trying to do the right things despite the lack of 1000's of BTC funded as we have seen in other ICOs.

I did not intend of making this post sound negative, but I would rather state that I appreciate the team's efforts and openness in the ongoing campaign. Whether the ICO brings in millions or thousands, I'm sure we all can look forward to exciting technologies, especially the Social Fintech platform looks intriguing. Good Luck in the continuity of the ICO, I'm looking forward to what the Janus team can achieve!

Good feedback, Mr 110110101. Just for full disclosure: I'm a member of the Nxt Foundation, and thus acting as escrow for the Janus ICO.
So, i'm going to restrict myself to commenting on the line in bold: uncertainty of Nxt and Ardor. You guys can then judge Janus on its own merits, without having to worry about the platform that it uses.

Nxt has been running, almost faultlessly , for 3 years now. It is one of the most stable, well-established and feature-rich crypto-currency/blockchain systems in existence, and is not going away any time soon.
Even after Ardor is launched, in mid-2017 (ish), Nxt will continue to run and be supprted by the core dev team. There is no real uncertainty about Nxt, not after 3 years.

Ardor is more speculative, but it will be based on proven Nxt technology, created by the same dev team, and supported by the same community as Nxt itself. The crypto world has seen how completely dedicated we are to these projects, so have some faith in our ability to deliver. Nxt has a very solid track record.
4  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][JNS] Janus|Blockchain secured global business on: November 16, 2016, 12:07:35 AM
I dont see the escrow address or the escrow agreement, sorry if i missed it

A PDF version of the escrow details can be found here:

A supporting/corroborating statement from Nxt Foundation member "evildave" can be found here:

Please note that our Bitcoin escrow funds are stored using a highly secure, multi-sig wallet. Under their system, there is a wallet master address under which new addresses are created on demand. The result of this is that the main wallet address doesn't show a balance since all funds are deposited to dynamically created, user-specific addresses. If you desire verification of this fact please let us know and we'll get evildave from the Nxt Foundation to verify this setup and the fact that the Nxt Foundation controls the funds deposited.

That would be me... there any particular form of verification that you guys would like to see ?
5  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][TokenSale Live][JNS] Janus|Blockchain secured global business on: November 11, 2016, 04:19:06 PM
Reserved for me to put stuff in about the escrow arrangements for Janus investment funds:

The Nxt Foundation will hold all funds in 5 person escrow arrangement, with BTC being held on a 5 person multi-sig BitGo wallet and NXT on a phased Nxt account, also under 5 person control.  
Funds will be released at the end of escrow period, under set conditions. This way, none of the Janus team have any access to the funds until after the ICO has been successfully completed.
(check members for a full rundown)
Company providing the multi-sig wallet service for BTC
The system used to secure NXT funds for Janus, enables multi-sig control of Nxt accounts.

Any questions about the escrow arrangement, just ask and I'll add the information to this post.

Best of luck to the Janus team  Grin
6  Alternate cryptocurrencies / Altcoin Discussion / Re: Let's get rid of OneCoin on: July 07, 2016, 10:10:39 AM
Better to discuss the possibility of nuking Onecoin from orbit.  Angry
I've seen some very sketchy shit in and around crypto, but this is on another level: nothing more than a MLM scam pretending to be a crypto-currency.

Every person who loses their investment money to OneCoin is one less person who will trust and use real crypto/blockchain.
Even if the marketing doesn't make you puke,  OneCoin is a direct threat to the success of Bitcoin, Nxt and all genuine crypto.
7  Alternate cryptocurrencies / Altcoin Discussion / Re: please help me on: June 23, 2016, 08:22:18 PM
Aw...give the guy a break.

Though, he did get lucky with me being one of the first to see his post.......I've been hiding in bushes for the last 6 months far as BTT was concerned, and I'm full of love for all mankind right now.
Probably won't last long.... Grin

Big 'Hi' at the penguin with the AK, btw,  Wink

8  Alternate cryptocurrencies / Altcoin Discussion / Re: please help me on: June 23, 2016, 02:14:19 PM
Guessing that you mean Nxt..... Grin

The latest version for Nxt mainnet is:

Or the latest experimental version, only for use on TestNet:
9  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][ARDR] Ardor, or Nxt 2.0, a Scalable Child Chain Platform on: June 21, 2016, 10:32:28 AM
The name 'Ardor' is Don Draper brilliant ... it's so BAD it sticks in the mind like a terrible TV commercial, or an irritating pop song ... well done team Ardor!!

Thanks, mate. It did take quite a lot of brainstorming before we came up with 'Ardor'.....mainstream adoption is now guaranteed  Grin

I wonder how many Ardor tokens will be sent to abandoned accounts that were used for coin shuffling for example Wink

Doesn't matter, really, and there's nothing to be done about it.
Someone suggested trying to remove 'abandoned' accounts from the Ardor distribution, but there's no easy way to distinguish between abandoned and long term hodling.
Everyone gets the Ardor they deserve...... Cheesy

(and, btw, this is not a swap. If you hold NXT Original, you will recieve Ardor tokens (based on the snapshot balance) , and you get to keep your NXT Original.
The Nxt 1.0 blockchain will continue to run in parallel with the new Ardor/Nxt2.0 blockchain, so you get 2 systems for the price of one)

Lastly: It's good to be back on BTT, kids. I've kinda missed this place over the last few months....... Shocked
10  Alternate cryptocurrencies / Altcoin Discussion / Re: TPTB_need_war Bitcoin Fork in the making! on: May 18, 2016, 08:03:58 AM
First time I've looked at BTT in a long while......nice to see things haven't changed all that much  Cheesy
Hi, guys + girls (and socks) !
11  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 19, 2016, 01:57:42 AM
Incoming hard fork and new features with Nxt 1.7.4
Update now, please, particularly if you use the Nxt API !

As you see above, Nxt version 1.7.4 is almost live:
In around 3 days time, Nxt will hit block 621,000 and a group of new features will be implemented via a hard fork.
This means that anyone running an older version than Nxt 1.7.4 after that block will be ignored by the main blockchain.

Here's the link to the update:

And, for API users, here's a lot of useful info, as the last API changes were all implemented in the 1.6.2 release:

Currently, around 75% of the Nxt network is running on 1.7.4, so the hard fork should go smoothly:           Shocked

For ordinary users, the update will be no more complex than any other update,
but any projects that have not upgraded their API code base from the old 1.5.x branch will experience problems.
If anyone has any serious issues, the Nxt community has a helpdesk service available:

So much for the warnings and admonitions, here's the new features (part of the press release for 1.7.4):


NXT 1.7.4 is going live soon!

Over the last few months, the entire Nxt community has been working on what will be one of the most important Nxt updates  in 2016:
Version 1.7.4 of the Nxt client software1.7.4 (known as NRS: NXT Reference Software).
(See: )
NRS 1.7.4 will bring a group of useful new features to the Nxt protocol and client, as well as a large number of smaller improvements, including more regular block times.
The first experimental TestNet versions of the NRS 1.7.x release were released at the end of November, with the stable MainNet version released at the end of 2015,  this release is the culmination of around 6 months development and improvement on the core Nxt protocol, and  has already been thoroughly tested in both production and test environments.
The new features that are included in NRS 1.7.4  will be activated at block 621,000, and from that moment on, the NRS 1.7.x branch will supercede all older versions of the Nxt software.
(See for a precise countdown).

As ever, the updated Nxt software is available for Windows, Linux and Mac systems, with code-signed installers available to guarantee user security and ease of installation.
Nxt has recently opened a helpdesk system, allowing users to receive direct and professional support from the Nxt community and developers, if needed.
(See: )

The Nxt community is very proud to present this update to our users, and we believe that this will confirm Nxt’s position as the most innovative, effective and efficient decentralised crypto-currency system. The new features will bring a range of new functionality to Nxt, allowing users to:

·   Create multi-signature accounts for ultimate security, using Account Control

·   Use the CoinShuffle system to anonymise Nxt funds.

·   Store, retrieve and publish files, documents, or arbitrary data on the Nxt blockchain using the  Data Cloud.

In addition to the main new features, there are a number of incremental improvements designed to optimise the Nxt block generation/transaction confirmation algorithm,
and a small selection of secondary features/improvements.

New features in Nxt 1.7.4:
(See: )

Account Control – native multi-user accounts

In the new 1.7.4 release it will be possible to set Nxt Accounts to “Phasing Only” mode.
Account Control builds on the earlier ‘Phasing ‘ feature of Nxt,  which allows transactions from a Phased account to only be executed after they have been approved by a voting process, using the Nxt native Voting System in a manner similar to a multi-signature transaction.
Unlike a simple multi-sig system, this voting process within Account Control can include many different parameters, for instance votes can be set only allow certain Asset holders to vote on the transaction, or may only be for Accounts that hold a specific amount of NXT. More info on the NXT Voting System and on Phasing can be found here:

And on the Account Control system itself:

What does this mean?
This means it is now possible to set up accounts that are controlled by other accounts (or entities) in a system similar to basic multi-signature systems This allows account control to be decentralised, allows complex account approval structures or simply additional security. Account Control allows complex decisions to be made on disbursement of funds  while still retaining all the advantages of the Nxt brainwallet system of account access.

For example: spending decisions for a business. Business operators can submit a request to transfer funds, and the decision to allow this transfer (or not) can be made by a group of people on the basis of a simple majority vote. This vote will be made transparently on the blockchain and everyone can see how each voter cast his or her vote.  This is a very useful step forward for the development of distributed businesses on the NXT platform.
A simple means of adding an extra security layer to personal accounts using Account Control will be to set up a second account completely separate to a users main account, and have all transactions from the first controlled by the second. Using this approach, even if one of the two accounts are compromised, the funds will be safe.
Account Control works for any transaction on Phased Nxt accounts, such as Messaging, Asset Transactions etc.

Coin Shuffling – native NXT mixing service

Most people who are familiar with digital/crypto-currency will also be familiar with mixing services, which are a method of anonymising  transactions by literally mixing funds from multiple accounts. There has been discussion about the implementation of Coin Shuffling in Bitcoin, but given the current situation within Bitcoin, it appears that the BTC core developers will never be able to implement this feature within the core.
This means that the only mixing services available up until now have been external services provided by a third party, not integrated into a genuinely decentralised solution. The problem with these services is that they represent a single point of failure: they are centralised, subject to attack and require a user to trust the operator of the mixing service. This is exactly the sort of issue that cryptocurrencies were created to address: eliminate single points of failure by decentralising them and removing the need to trust a single external party.

CoinShuffle does exactly this. The system is based on this paper by Tim Ruffing et al:
TR and his team intended this to be implemented in Bitcoin, their research has now been utilised in the creation of the Nxt CoinShuffle implementation
The implementation of CoinShufflethat NXT uses has been reviewed by Tim Ruffing himself:

What does this mean?
This means that NXT is now the first cryptocurrency platform to natively incorporate a decentralised mixing/CoinShuffle service on its own blockchain, allowing users to choose to completely anonymise the source of funds held in NXT. As Nxt also allows the trading of a number other assets and currencies on its blockchain, Coin Shuffling could potentially be used as a means of anonymising many other currencies.

Data Cloud – Blockchain data management made easy.

It has been possible to use the Nxt blockchain for storage/transmission of small amounts of data for quite some time, with the Messaging and Tagged Data features allowing the upload of small data payloads to the blockchain. The Tagged Data system has now become the Data Cloud, adding a UI and multiple enhancements to the already existing Tagged Data functionality.

What does this mean?
Nxt Data Cloud will allow decentralized, censorship-free and tamper-proof publication
and retrieval of small files, documents, or arbitrary data to the blockchain, with low costs/fees and options including automatic removal and encryption.

Other features/improvements in NRS 1.7.4 :

Adjusted block generation algorithm – faster blocks

The NXT block creation algorithm has been optimised in this release with some modifications to  base target adjustment algorithm.
In practice this means that there will be no more so called “Long blocks”, a frequent irritation for users.
The optimised algorithm will ensure that Nxt blocktimes are on average somewhat faster, and more regularly timed.

Singleton assets – Assets for unique items

NXT has always been at the forefront of Asset creation/trading platforms. With Singleton Assets it now becomes possible to release a new class of Asset:
Singleton Assets are an asset with a fixed quantity of 1.
This allows for the creation of Assets that can represent unique, non-fungible items, something that was not possible before.

Fees and tx size limit changes – building to scale

In the interest of scaling, fees for certain transactions will be changed to a dynamic scale.
This will be particularly applicable to data storage transactions, as Dynamic Fees will be proportional to the relative transaction size.

Account Properties - user definable tags for accounts

Account Properties will allow users to assign arbitrary name/value metadata to other user accounts.
This will allow, for example, a trader to tag trustworthy accounts with an approved rating, or to identify an account as being associated with a verified identity.


Nxt is still, even after 2 years, developing quickly and succeeding in its core aim of creating a stable platform for businesses, while adhering to the decentralised model of crypto-currency as a form of personal financial empowerment.  NRS 1.7.4  is a major release for Nxt, and will be a very important milestone in its development, With these changes, Nxt is more ready than ever to bring financial freedom to individuals,  to give businesses powerful tools to build on  the Nxt blockchain and to carry on being the only genuinely decentralised solution to build blockchain services on.

Onwards and upwards.......... Cheesy


Just need to express my thanks to all of the hard working guys (and occasionally girls) in the Nxt community and beyond, who have helped to make all of the above possible.
Thanks, Nxt, you've done an amazing job.  Grin

12  Economy / Scam Accusations / Re: Cryptsy is closed - Email on: January 13, 2016, 03:13:12 PM
It's a scam !
(called phishing, look it up)
do not, ffs, click on the link in that mail
13  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 13, 2016, 01:31:02 AM

If you lease, forging is completely 'fire and forget' for the leasing period. No need for a running node or open client once you've set it up.

There are a few pools around, I run a forging node with a few leased balances, but all that income gets used for Nxt stuff, mostly to faucet top-ups, so leasing to me is really donating your forging power and income.

Check out ForkedChains pool, they actually make regular payouts of your forging income from leasing:

and there's a couple of others, but I'm too lazy to search. Off to my bed...... Wink
14  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 12, 2016, 11:47:52 PM
At what amount of coins do we bother solo forging and if not at that point yet how does one pool forge?

Good question. Forging needs to be always-on, and with anything less than 50-100,000 NXT you won't see much action.  
In order to "pool" your forging power, simply lease your balance to another Nxt account, here's the interface:

(sorry about the crappy GIMP work)

Log in, click on account info, chose the leasing interface.
To find a forging pool, have a look on
Don't expect to get rich on Nxt forging, btw, return is around 1-2% per year, regardless of how big or small your balance is.
But it is good to support the network, so get forging in some way.

If you have any sort of always-on computer, Nxt will probably run on it, if you wish to run your own Nxt node.
RaspPi2 and CubieTrucks are a popular option for stand-alone Nxt forging nodes, if you like.
15  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 12, 2016, 12:33:35 AM
Nxt 1.7.4 update: new features and a hard fork (!) at block 621,000

(click for the real countdown timer)

The current Nxt client software NRS (Nxt Reference Software) 1.7.4 was released at the start of this month.
It contains a number of new features and changes that will be activated once Nxt reaches block 621,000, in about 10.5 days time.
This release is the culmination of a lot of work over the last few months, and will no longer be compatible with older releases (ie anything from NRS 1.6.x and below).

For ordinary end-users this update will not be a big issue, simply ensure that you have updated your server/node software to the latest 1.7.4 version:
preferably before the hardfork block. People running older versions of the NRS after the hard fork block passes will find themselves on an invalid chain, and will be ignored by the majority 1.7.4 network.
See here for realtime details of the Nxt network:

As you can see, of the current 263 Nxt nodes online, 161 are running NRS 1.7.4, a substantial majority.

For people who are running an Nxt-based project (or a system that uses the Nxt API, like exchanges), the situation is slightly more complex as there have been API changes made in the step from NRS 1.5.15 to NRS 1.6.2. This means that if you have already successfully upgraded to 1.6.2/3, the upgrade to 1.7.4 will be simple as there are no substantial API changes to consider.
However, people who need to update from 1.5.15 will probably need to make code changes to accomodate these API changes.

All of the info on these API changes, and on the new features that will be implemented can be found here:

We've already posted this information on multiple fora/social media, and directly mailed it to most Nxt-based projects/exchanges with the NRS 1.6.3 release, but it can't do any harm to remind everyone.
As ever, if you have any questions, post here, ask on the Nxt forum, or give our recently created helpdesk a try:
16  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 11, 2016, 11:53:43 PM
Thanks for the help with Shuffling Sunday, people. We, again, got lots of testing done, but so far no nasty exploits found.(Sadly)
If anyone wants to seriously have a go at breaking the Nxt CoinShuffle feature, and earning some nice bounties in the process, we may run another Shuffling Sunday (the third so far) on the 17th Jan, just before the 1.7.4 hardfork at block 621,000.

Which brings me to:

17  Alternate cryptocurrencies / Altcoin Discussion / Re: Why is NXT not the number 2 coin? on: January 11, 2016, 11:41:04 PM
Yep, habraken, you ain't wrong. We are working (well, arguing about) a ' Simple/Advanced view' implementation in the client, and there are a couple of fairly simple routes to achieve that......stay tuned, we should have something happeining soon(ish) on that front.
18  Alternate cryptocurrencies / Altcoin Discussion / Re: I'm Tech-Impaired But in Charge of Spearheading Development of an Altcoin on: January 10, 2016, 03:37:35 PM
Moving back to the point: use Nxt. Just posted in the old NXT thread:

Yes, and it is very, very simple. Check out the wiki:
And your tech guys will need an API reference to play with:
Nxt-related set-up costs will consist only of the fee for new currency creation, which will vary from 40 to 25,000 NXT, depending on what length your currency code is:
25000 NXT for three-letter codes, 1000 NXT for four-letter codes and 40 NXT for five-letter codes.

If you need more info, come for a chat on, good luck with your project.

19  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] Nxt :: descendant of Bitcoin on: January 10, 2016, 03:34:47 PM
Yes, and it is very, very simple. Check out the wiki:
And your tech guys will need an API reference to play with:
Nxt-related set-up costs will consist only of the fee for new currency creation, which will vary from 40 to 25,000 NXT, depending on what length your currency code is:
25000 NXT for three-letter codes, 1000 NXT for four-letter codes and 40 NXT for five-letter codes.

If you need more info, come for a chat on, good luck with your project.

20  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NXT] Nxt - Official Thread on: January 10, 2016, 02:10:29 PM
Time for a swift kick......if anyone feels like testing (and preferably breaking) the Nxt CoinShuffle feature, come on down !

Shuffling Sunday II: Sabotage !!-%28testing-nrs-1-7-2e-coinshuffle-13-12-2015-%29/

There is a bounty pool of at least 50,000 NXT available to participatiing testers, and we'll be running Shuffling Sunday testing both today and next week, 17 Jan.

Happy New Year to all the BitcoinTalk crew, btw !
(yeah, I know i'm a bit slow)
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 115 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!